一 初識函式
函式的優勢:
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 +
==================
def register(n,s,a,e):
with open('aa.py',encoding='utf-8',mode='a') as f1:
f1.write('{}|{}|{}|{}\n'.format(n,s,a,e))
while 1:
name = input('請輸入姓名:(Q或者q退出)')
if name.upper()== 'Q':break
sex = input('請輸入性別')
age = input('請輸入年齡')
edu =input('請輸入學歷')
register(n=name,s=sex,a=age,e=edu)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/110814.html
標籤:Python
上一篇:day8__作業(重點)
