目錄函式的定義的三種形式
函式的呼叫
函式的返回值
函式的引數
位置引數
預設形參
關鍵字實參
可變長引數
函式就是一種具備某一功能的工具,事先將工具準備好就是函式的定義,遇到場景拿來就用。
def 函式名(等同於變數)(): # 定義函式
"""對函式的描述"""
**塊函式名() # 函式呼叫
def register():
"""註冊功能"""
count = 0
while count < 3:
username_inp = input('請輸入你的使用者名稱:').strip()
pwd_inp = input('請輸入你的密碼:').strip()
re_pwd_inp = input('請再次確認你的密碼:').strip()
if re_pwd_inp != pwd_inp:
print('兩次密碼輸入不一致!')
count += 1
continue
with open('userinfo.txt', 'a', encoding='utf-8') as fa:
fa.write(f':\n')
print('註冊成功')
break
register()
def login():
"""登入功能"""
username_inp = input('請輸入你的使用者名稱:').strip()
pwd_inp = input('請輸入你的密碼:').strip()
user_info = f':'
with open('userinfo.txt', 'r', encoding='utf-8') as fr:
data = fr.read()
user_info_list = data.split('\n')
if user_info in user_info_list:
print('登入成功')
else:
print('登陸失敗')
login()
定義了乙個函式,但啥都沒有
def func():
pass
def add(x, y):
"""有參函式"""
print(int(x) + int(y))
add(1, 2)
def func():
print('hello world')
使用函式名()
的形式就可以呼叫函式了
def func(x, y):
"""給定兩個數, 列印較大的數"""
if x > y:
print(x)
else:
print(y)
print(func)
func(10, 20) # 加括號就能呼叫(執行記憶體中的**)
# 列印結果:
# 函式的位址
20
return 返回乙個值
def add(x, y):
return x + y
res = add(1, 2)
print(res)
# 列印結果
3
return沒有返回值,預設返回none
def add(x, y):
print(x, y)
# return x + y
res = add(1, 2)
print(res)
# 列印結果:
1 2none
return可以返回多個值,可以返回任意資料型別,預設用元組形式返回
def add(x, y):
print(2)
return x, y, x + y
res = add(1, 2)
print(res)
# 列印結果:
2(1, 2, 3)
return會終止函式,不執行下面的**,即使有多個return,只會執行第乙個return,不會執行下乙個
def add(x, y):
print(2)
return x, y, x + y # 遇到return就會終止函式
print('hello world')
return x
res = add(1, 2)
print(res)
# 列印結果:
2(1, 2, 3)
在函式定義階段括號內定義的引數,稱之為形式引數,簡稱形參,本質上就是變數名
def func(x, y):
print(x)
print(y)
在函式呼叫階段括號內傳入的引數,稱之為實參
func(1, 2)
在函式定義階段,按照從左往右的順序依次定義的引數,稱之為位置形參
def func(x, y):
print(x)
print(y)
在函式呼叫階段,按照從左往右的順序定義的引數,稱之為位置實參,依次傳值給位置形參
func(1, 2)
在函式定義階段,就已經被賦值
def func(x, y=10):
print(x)
print(y)
func(2)
在呼叫函式時,按照位置形參名傳值
func(y=2, x=1)
關鍵字實參必須在位置實參後面
形參中的*會將溢位的位置實參全部接收,然後儲存元組的形式,然後把元組賦值給*後的引數。需要注意的是:*後的引數名約定俗成為args。
def f1(*args):
print('args:', args)
f1(1, 23, 4) # args接收位置實參多餘的引數
# 列印結果:
args: (1, 23, 4)
'''
形參中的**會將溢位的關鍵字實參全部接收,然後儲存字典的形式,然後把字典賦值給**後的引數。需要注意的是:**後的引數名約定俗成為kwargs。
'''def f2(a,**kwargs):
print('kwargs:', kwargs)
f2(x=12, a=10, b=9) # kwargs接收關鍵字實參多餘的引數
# 列印結果:
kwargs:
def func1(a,b,c,d):
print(a,b,c,d)
lt = [1,2,3,4]
func1(*lt) # *lt列表中的元素打散成位置實參依次傳給位置形參
def func(a, b):
print(a, b)
dic =
func(**dic) # **dic把字典打散成關鍵字實參然後傳給函式func
函式引數和函式返回值
思考乙個問題,如下 現在需要定義乙個函式,這個函式能夠完成2個數的加法運算,並且把結果列印出來,該怎樣設計?下面的 可以嗎?有什麼缺陷嗎?def add2num a 11 b 22 c a b print c為了讓乙個函式更通用,即想讓它計算哪兩個數的和,就讓它計算哪兩個數的和,在定義函式的時候可以...
python 函式 引數 返回值
函式 function 也叫方法 method 是一組可以重複使用的 段。函式分為內部函式和使用者自定義函式。內部函式就是程式語言已經寫好了,使用者無序定義就能直接呼叫的函式,比如說len str print 等,但是這些函式還遠不能滿足實際開發,故使用者可以自定義函式。函式的結構是 def 函式名...
函式 引數 返回值 遞迴
函式 函式表示式就是忽略名字 1 函式宣告 function onname 2 命名函式表示式 var test function abc 3 匿名函式表示式 var demo function 因為匿名函式表示式比較常用,所以說函式表示式一般是指匿名函式表示式 引數 形式引數 沒有實際傳值 實際引...