python3 7入門系列八 函式

2021-09-21 15:46:54 字數 2641 閱讀 9130

函式是具有名字的一段可重複使用的**塊

定義函式使用關鍵字 def

>>> def hello():

...     print('hello')

...>>> hello()

hello

函式的引數

>>> def hello(name):

...     print('hello, ' + name)

...>>> hello('tom')

hello, tom

其中,定義hello函式時的引數name是形參,呼叫函式hello('tom') 時的'tom'是實參

位置實參

位置實參就是按函式定義時形參的位置順序傳遞,如

>>> def hello_person(name, age):

...     print(name + ' is ' + str(age))

...>>> hello_person('tom', 18)

tom is 18

如果不按順序傳遞那麼就可能發生語法報錯或者程式的執行與預期不一致,如

>>> hello_person(18, 'tom')

traceback (most recent call last):

file "", line 1, in

file "", line 2, in hello_person

typeerror: unsupported operand type(s) for +: 'int' and 'str'

所以,位置實參的順序特別重要,順序錯了會導致嚴重後果

關鍵字實參

>>> hello_person(name='tom', age=18)

tom is 18

>>> hello_person(age=18, name='tom')

tom is 18

因為通過關鍵字指定了實參的名稱,所以順序對於關鍵字實參不重要

預設值函式定義時可以給形參指定預設值,當函式呼叫時沒有給該引數傳遞值時,該引數將使用預設值

>>> def say_person(name, age=18):

...     print(name + ' is ' + str(age))

...>>> say_person('tom')

tom is 18

這裡沒有傳遞引數age的值,因此使用了預設值18

對於沒有預設值的引數,則必須提供實參的值,可以是位置實參,也可以是關鍵字實參

>>> say_person(name='tom')

tom is 18

返回值def get_full_name(first_name, last_name):

return first_name + last_name

name = get_full_name('張', '三')

print(name)

name = get_full_name('李', '四')

print(name)

以上**執行後輸出

張三李四

函式可以有引數、返回值,能反覆多次呼叫

返回字典

def get_name_dict(first_name, last_name):

dict = {}

dict['first_name'] = first_name

dict['last_name'] = last_name

#或者 return

return dict

dict = get_name_dict('張', '三')

print(dict)

執行輸出:

list做引數

def hello(fruits):

for fruit in fruits:

print('hello, ' + fruit)

不讓改變引數

animals = ['dog', 'cat', 'pig']

change(animals[:])

print(animals)

執行輸出:

['dog', 'cat', 'pig']

這裡的animals[:] 是複製了乙個物件,傳給change函式並不是animals物件自己,而是乙個複製副本

任意個數的引數

def out(*fruits):

print(type(fruits))

for fruit in fruits:

print(fruit)

傳遞任意個數的關鍵字引數

def out2(**person):

print(type(person))

for key, value in person.items():

print(key + " : " + str(value))

out2(name='tom', age=18)

執行輸出:

name : tom

age : 18

python 自帶了很多內建函式,很多都是需要掌握的,訪問位址  

python3 7入門系列五 if 語句

if 是條件判斷語句,是高階語言都有的特性。數字比較 age 18 age 18 true 數字比較有等於 小於 小於等於 大於 大於等於 age 18 age 18 true age 17 false age 17 false age 18 false age 18 true 判斷多個條件 age...

python3 7入門系列十四 排版縮排及其他

縮排 python的 組織排版不用大括號,而是靠縮進來表示 塊,如 a 5 if a 0 print 大於0 else print 小於等於0 並且縮排一定要對齊 即空格數要一樣 不對齊會報語法錯誤 空行相同功能的語句寫在一起,不同功能的語句用空行分隔 函式之間用空行分隔 類的後面用兩行空行分隔 注...

Python3 7安裝部署

教你如何在 centos 7 下編譯安裝 python 3.7 與 python 2.7.5 共存。環境 centos 7.6 x64 一 安裝python 3.7 wget 如果沒有wget命令,可以使用命令安裝 yum y install wget 安裝依賴包,避免安裝過程 現的 zipimpo...