一 初識函數 函數的優勢: 1,減少代碼的重覆性。 2,使代碼可讀性更好。 def date(): print("拿出手機") print("打開陌陌") print('左滑一下') print('右滑一下') print("找個漂亮的妹子") print("問她,約不約啊!") print("ok ...
一 初識函數
函數的優勢:
1,減少代碼的重覆性。
2,使代碼可讀性更好。
def date():
print("拿出手機")
print("打開陌陌")
print('左滑一下')
print('右滑一下')
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
date() # 調用函數
二. 函數的結構與調用
- 函數的結構:
def 函數名():
函數體
def 關鍵詞開頭,空格之後接函數名稱和圓括弧(),最後還有一個":"。
def 是固定的,不能變,他就是定義函數的關鍵字。
空格 為了將def關鍵字和函數名分開,必須空(四聲),當然你可以空2格、3格或者你想空多少都行,但正常人還是空1格。
函數名:函數名只能包含字元串、下劃線和數字且不能以數字開頭。雖然函數名可以隨便起,但我們給函數起名字還是要儘量簡短,並且要具有可描述性
函數體:縮進,函數中儘量不要出現print
括弧:是必須加的
def date():
print("拿出手機")
print("打開陌陌")
print('左滑一下')
print('右滑一下')
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
-
函數的調用
s1=[1,2,3,4,5] s2='sdfsdfsdfdsf' def a(s): count = 0 for i in s: count+=1 print(count) a(s2)
三. 函數的返回值
一個函數就是封裝一個功能,這個功能一般都會有一個最終結果的,比如你寫一個登錄函數,最終登錄成功與否是不是需要返回你一個結果?還有咱們是不是都用過len這個函數,他是獲取一個對象的元素的總個數,最終肯定會返回一個元素個數這樣的結果:
用到python中的一個關鍵字:return
在函數中遇到return直接結整函數
retuen有兩個功能:
- 結束函數不在繼續執行
- 會給函數執行者返回值
1)函數中遇到return,此函數結束.不在繼續執行
def date():
print("拿出手機")
print("打開陌陌")
return
print('左滑一下')
print('右滑一下')
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
date()
輸出結果:
拿出手機
打開陌陌
2)return 會給函數的執行者返回值。
def date():
print("拿出手機")
print("打開陌陌")
print('左滑一下')
print('右滑一下')
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
return '約會成功~!'
a = date()
print(a)
輸出結果:
拿出手機
打開陌陌
左滑一下
右滑一下
找個漂亮的妹子
問她,約不約啊!
ok 走起
約會成功~!
如果返回多個值,是以元組的形式返回的。如下:
def date():
print("拿出手機")
print("打開陌陌")
print('左滑一下')
print('右滑一下')
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
return '約會成功~!','123','xxxxxx'
a = date()
print(a)
輸出結果:
拿出手機
打開陌陌
左滑一下
右滑一下
找個漂亮的妹子
問她,約不約啊!
ok 走起
('約會成功~!', '123', 'xxxxxx')
總結一下:
1.終止函數,return下麵的(函數內)的代碼不會執行。
2.return 會給函數的執行者返回值。
可函數的執行者返回值
如果return後面寫了多個結果,,返回給調用者一個tuple(元組),調用者可以直接使用元組的結構獲取多個變數。
def date():
print("拿出手機")
print("打開陌陌")
print('左滑一下')
print('右滑一下')
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
return '漂亮的妹子','小蘿莉', '成熟女性'
g1,g2,g3 = date()
print(g1, g2, g3) # 漂亮的妹子 小蘿莉 成熟女性
四. 函數的傳參
將一些數據傳到函數裡面的,然後讓裡面的代碼利用上這個數據產生我們想要的結果,在返回。
舉個例子:
def date(sex):
print("拿出手機")
print("打開陌陌")
print('設置篩選條件:性別: %s' %sex)
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
date('女')
函數的參數可以從兩個角度劃分:
- 形參
寫在函數聲明的位置的變數叫形參,形式上的一個完整.表示這個函數需要xxx
- 實參
在函數調用的時候給函數傳遞的值.加實參,實際執行的時候給函數傳遞的信息.表示給函數xxx
1、實參:
def date(sex): # 函數定義時(參數) 這個就是形參
print("拿出手機")
print("打開陌陌")
print('設置篩選條件:性別: %s' %sex)
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
date('女') # 函數執行時(參數) 這個就是實參
# 這個過程就是:代碼運行到date('女')開始執行此函數同時將字元串'女'這個數據傳遞給變數sex,然後執行函數中的代 # 碼。如果遇到sex,其實就是使用'女'這個數據。
1)實參角度:
- 位置參數
位置參數就是從左至右,實參與形參一一對應。
def date(sex, age, hobby):
print("拿出手機")
print("打開陌陌")
print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
date('女','25~30','唱歌')
練習
編寫函數,給函數傳遞兩個參數a,b 比較a,b的大小 返回a,b中最大的那個數
def f(a,b):
if a>b:
return a
else:
return b
num_sum = f(5,8)
print(num_sum)
結果:8
- 關鍵字參數
def date(sex, age, hobby):
print("拿出手機")
print("打開陌陌")
print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
date(hobby='唱歌',sex='女',age='25~30',)
-
混合參數
def date(sex, age, hobby): print("拿出手機") print("打開陌陌") print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby)) print("找個漂亮的妹子") print("問她,約不約啊!") print("ok 走起") date('女',hobby='唱歌',age='25~30',)
混合參數, 位置參數必須在關鍵字參數前面
2)形參角度:
- 位置參數
位置參數其實與實參角度的位置參數是一樣的,就是按照位置從左至右,一一對應
def date(sex, age, hobby):
print("拿出手機")
print("打開陌陌")
print('設置篩選條件:性別: %s,年齡:%s,愛好:%s' %(sex, age, hobby))
print("找個漂亮的妹子")
print("問她,約不約啊!")
print("ok 走起")
date('女','25~30','唱歌')
- 預設參數
def stu_info(name, age, sex='男'): #sex='男'就是一個預設參數
print("錄入學生信息")
print(name, age, sex)
print("錄入完畢")
stu_info("張強", 18)
練習:
def date(osname,cpu_info,ram_info):
print("====osname: %s ===="% osname )
print("+ CPU: %s +"% cpu_info)
print('+ 記憶體: %s +'% ram_info)
print("==================")
osname = input('請輸入系統名稱:')
cpu_info= input('請輸入CPU型號:')
ram_info=input('請輸入記憶體大小:')
date(osname,cpu_info,ram_info)
輸出結果:
====osname: Centos ====
+ CPU: E52620 +
+ 記憶體: 128G +
==================