python基礎第八節 函式(上)

2021-10-22 11:44:16 字數 2700 閱讀 2891

五、作業

函式是帶名字的**塊,用於完成具體的工作。要執行函式定義的特定的任務,可呼叫該函式。需要在程式中多次的執行同一項任務時,無序反覆編寫完成該任務的**,只需要呼叫執行該任務的函式,讓python執行其中的**即可。你將發現,通過使用函式,程式編寫、閱讀、測試和修復起來更加容易。

定義乙個函式,可以使用關鍵字def來告訴python,我要定義乙個函式,同時指出函式名。要呼叫時,只需要輸入函式名加上圓括號即可。

def

name()

:print

('hello world'

)name()

輸出:hello world

在括號中我們可以傳入引數,引數又分為實參和形參,在定義時傳入的引數叫形參,呼叫時傳入的引數叫實參

def

student

(name)

:#這裡的name就是形參

print

(f'我的名字叫'

)student(

'張三'

)#這裡的張三就是實參

輸出:我的名字叫張三

函式的定義中可能包含多個形參,在函式呼叫中也可能包含多個實參,那在傳遞實參的時候,可以通過位置傳參,以及關鍵字傳參

通過實參的順序來傳遞引數就叫位置傳參

def

student

(name,age)

:print

(f'我的名字叫,我今年歲了'

)student(

'張三'

,'20'

)輸出:我的名字叫張三,我今年20歲了

通過形參名與實參關聯起來進行傳參,這就是關鍵字傳參

def

student

(name,age)

:print

(f'我的名字叫,我今年歲了'

)student(age=

'20'

,name=

'張三'

)#這裡我將順序調換了,但依舊輸出的是我想要的型別

輸出:我的名字叫張三,我今年20歲了

編寫函式時,可以給每個形參指定預設值,在呼叫時,如果提供了實參,python將使用指定的實參值,否則,python將使用形參的預設值。

注意:使用預設值時,必須先在形參列表中列出沒有預設值的形參,在列出有預設值的實參

def

student

(name,age=20)

:print

(f'我的名字叫,我今年歲了'

)student(

'李四'

)輸出:我的名字叫李四,我今年20歲了

列印名片程式:輸入姓名,**號碼,性別,最後列印出來名片

• 控制姓名長度為6-20

• **號碼長度11

• 性別只能允許輸入男或女

• 每一樣資訊不允許為空

def

card

(name,phone,***):if

5<

len(name)

<21:

print

(name)

else

:print

('姓名長度應在6-20之間')if

len(phone)

==11

:print

(phone)

else

:print

('**號碼為十一位數'

)if *** ==

'男'or *** ==

'女':

print

(***)

else

:print

('性別只能輸入男或女'

)name =

input

('請輸入你的姓名:'

)phone =

input

('請輸入**號碼:'

)*** =

input

('請輸入你的性別'

)card(name,phone,***)

2、使用函式求前20個斐波那契數列斐波那契數列:1,1,2,3,5,8,13,21…即: 起始兩項均為1,此後的項分別為前兩項之和

def

feibo

(num)

: a,b =1,

1 list1 =

for i in

range

(num)

:if i ==0:

if i >0:

a,b = b,a+b

print

(list1)

feibo(

20)

3、編寫一段**,定義乙個函式求1-100之間所有整數的和,並呼叫該函式列印出結果

def

add():

a =0for i in

range

(101):

a += i

print

(a)add(

)

第八節 函式

函式的特性 減少 重複 使程式變得可擴充套件 使程式變得易維護 乙個函式只做一件事情 變數作用域 python 中,程式的變數並不是在哪個位置都可以訪問的,訪問許可權決定於這個變數是在 賦值的。變數的作用域決定了在哪一部分程式可以訪問哪個特定的變數名稱。python的作用域一共有4種,分別是 以 l...

python第八節(函式2)

內建函式 map zip 返回1 10的奇數列表 for i in range 1,10,2 print i li for i in range 1,10 if i 2 1 print i print li filter 過濾 defis odd n return n 2 1print list f...

編譯原理 第八節

分為兩大類 自頂向下分析 和 自底向上分析 其中前者又細分為 遞迴下降分析法 包含回溯的遞迴下降分析法和不含回溯的遞迴下降分析法 和非遞迴的 分析法 ll分析法 後者分為算符優先分析法和lr分析法。思想 從語法的開始符號出發,試探使用不同產生式,尋找匹配於輸入符號串的推導。或者說,從對應文法開始符號...