Python之函式(基礎)

2021-09-10 15:05:34 字數 3852 閱讀 3818

1.函式的定義

(1).函式的定義與呼叫

# 定義函式

def say_hello():

print('hello1')

print('hello2')

print('hello3')

# 呼叫函式,函式只有被呼叫了才會有輸出值

示例1:定義求和函式(計算 20 + 30)

(2).函式的巢狀

def fun1():

print('world')

def fun2():

print('hello')

# 呼叫函式2(必須在函式1裡先呼叫函式2)

fun2()

#呼叫函式1

2.函式的四大引數

引數分為:形參  實參
# 形參:定義函式的時候的變數(可以任意起名)

def welcome(a):

print('hello',a)

# 實參:真實的資料資訊,即呼叫函式的時候傳的引數

形參分為: 位置引數 預設引數 可變引數 關鍵字引數
(1)位置引數

形參和實參個數必須保持一致,最好按位置傳參
def getinfo(name,age):

(2).預設引數

形參和實參可以不一致
# 計算x的y次方

def mypow(x,y=2):

print(x ** y)

mypow(4,3) # 4的3次方

mypow(2) # 2的2次方

(3).可變引數

可以接收任意個引數
# 累加運算

def mysum(*args):

# *args:可變引數(也可以簡寫為*a)

# args的資料型別為:元組(tuple)

(4).關鍵字引數

def getstuinfo(name,age,**kwargs):

# **kwargs是乙個字典,可以傳遞任意多的key-value

3.函式的返回值

返回值:函式執行的結果,還需要進一步操作時,給乙個返回值,return用來返回函式執行結果,如果沒有返回值,預設為none

python可以間接返回多個值(返回了乙個元組)一旦遇到return,函式執行結束,後面的**不會執行

def mypow(x,y=2):

return x ** y,x + y

# 不會輸出,因為之前有return

print('hello')

# 將函式的返回值賦值給變數a,b(有幾個函式返回值就用幾個變數接收)

函式返回值的意義在於,便於後續的使用
def mypow(x,y=2):

# print列印函式值,呼叫函式時,只能輸出列印內容,但無法使用變數

print(x ** y)

# 因為無函式返回值,所以此操作為無效操作

4.變數的作用域

區域性變數:在函式內部定義的變數,只在函式內部起作用,函式執行結束,變數會自動刪除

全域性變數:在函式外部定義的變數,能夠被本程式中的所有物件或函式進行引用,全域性變數的定義有利於程式的變數共享,簡化了新增和修改的程式

(1).全域性變數與區域性變數的定義

# 定義全域性變數

a = 1

print('outside:',id(a))

def fun():

# 定義區域性變數

a = 5

print('inside:',id(a))

fun()

print(a,id(a))

(2).將區域性變數宣告為全域性變數

# 定義全域性變數

a = 1

print('outside:',id(a))

def fun():

# 將區域性變數a宣告為全域性變數

global a

# 定義區域性變數

a = 5

print('inside:',id(a))

fun()

print(a,id(a))

python之函式基礎

python 函式 python函式可以返回多值 defadd dif x,y,sum x y dif x y return sum,dif a,b add dif 2,3 print a,b 5 1 r add dif 2,3 print r 5,1 本質來說返回多值的函式其實返回乙個元組tupl...

Python基礎之函式

不同型別的引數的優先順序 在引數列表中的順序 def testfunc1 pass這是乙個最簡單的函式,沒有引數,沒有返回,pass表示該函式沒有做任何操作,testfunc1是函式名,def是關鍵字,表示這是乙個函式 呼叫函式時給出函式並給函式傳遞相應的引數,對於命名關鍵字引數需要給出引數名,位置...

python基礎之函式

在任何一門程式語言中,函式都是非常重要的乙個部分,當然python裡也不例外。不過python裡函式也會有一些額外的擴充,比如巢狀函式,閉包和現在很多程式設計 語言都有的lambda表示式。先來看一下python裡正常函式的樣子 a 1def func num print num a 函式裡可以直接...