python基礎(五)

1寄锐、傳遞實參

1.1 位置實參

def describe_pet(animal_type,pet_name):

????print("\nI have a"+animal_type+".")

????print("My "+animal_type+"'s name is "+pet_name.title()+".")

describe_pet('hamster','harry')

-->I have ahamster.

????My hamster's name is Harry.

注意:函數調用中實參的順序與函數定義中形參的順序一致

1.2 關鍵字實參

describe_pet(animal_type='hamster',pet_name='harry')

describe_pet(pet_name='harry',animal_type='hamster')

-->I have ahamster.

????My hamster's name is Harry.

????I have ahamster.

????My hamster's name is Harry.

注意:使用關鍵字實參時袱耽,務必準確地指定函數定義中的形參名

1.3 默認值

def describe_pet(pet_name,animal_type='dog'):

????print("\nI have a "+animal_type+".")

????print("My "+animal_type+"'s name is "+pet_name.title()+".")

describe_pet(pet_name='willie')

-->I have a dog.

????My dog's name is Willie.

注意:在調用函數中給形參提供了實參時粗恢,Python將使用指定的實參值;否則捣炬,將使用形參的默認值批幌。在使用默認值時沙廉,在形參列表中必須先列出沒有默認值的形參翎猛,再列出有默認值的實參瓢捉,這讓python能正確解讀位置實參。

2办成、返回值

2.1 返回簡單值

def get_formatted_name(first_name,last_name):

????full_name=first_name+' '+last_name

????return full_name.title()

musician=get_formatted_name('jimi','hendrix')

print(musician)

-->Jimi Hendrix

2.2 讓實參變得可選

def get_formatted_name(first_name,last_name,middle_name=''):? ? //先讓中間名字形參默認為空

if middle_name:? ? //用if語句判斷

????full_name=first_name+" "+middle_name+" "+last_name? ? //有中間名字時加上實參

else:

????full_name=first_name+" "+last_name

return full_name.title()

musician=get_formatted_name('jimi','hendrix2')

print(musician)

musician=get_formatted_name('john','hooker','lee')

print(musician)

-->Jimi Hendrix2

????John Lee Hooker

2.3 返回字典

def build_person(first_name,last_name):

????person={'first':first_name,'last':last_name}

????return person

musician=build_person('tom','smith')

print(musician)

-->{'first': 'tom', 'last': 'smith'}

3、傳遞列表

def greet_users(names):? ? //形參是一個列表

????for name in names:

????????msg="Hello, "+name.title()+"!"

????????print(msg)

usernames=['hahana','ty','margot']

greet_users(usernames)

-->Hello, Hahana!

????Hello, Ty!

????Hello, Margot!

3.1 在函數中修改列表

def print_models(unprinted_designs,completed_models):

????while unprinted_designs:

????????current_design=unprinted_designs.pop()

????????print("Printiing model: "+current_design)

????????completed_models.append(current_design)

def show_completed_models(completed_models):

????print("\nThe following models have been printed:")

????for completed_model in completed_models:

????????print(completed_model)

unprinted_designs=['iphone case','robot pendant','dodecahedron']

completed_models=[]

print_models(unprinted_designs,completed_models)

show_completed_models(completed_models)

-->Printiing model: dodecahedron? ? //每個函數只負責一項具體的工作

????Printiing model: robot pendant

????Printiing model: iphone case

????The following models have been printed:

????dodecahedron

????robot pendant

????iphone case

4搂漠、傳遞任意數量的實參

def make_pizza(*toppings):? ? //形參*toppings中的星號讓Python創(chuàng)建一個名為toppings的空元組

????print(toppings)? ??

make_pizza('pepperoni')

make_pizza('mushrooms','green peppers','extra cheese')

-->('pepperoni',)

????('mushrooms', 'green peppers', 'extra cheese')

4.1 結合使用位置參數和任意數量實參

def make_pizza(size,*toppings):

????print("\nMaking a "+str(size)+"-inch pizza with the following toppings:")

????for topping in toppings:

????????print("-"+topping)

make_pizza(16,'pepperoni')

make_pizza(12,'mushrooms','green peppers','extra cheese')

-->Making a 16-inch pizza with the following toppings:

????-pepperoni

????Making a 12-inch pizza with the following toppings:

????-mushrooms

????-green peppers

????-extra cheese

4.2 使用任意數量的關鍵字實參

def build_profile(first,last,**user_info):? ? #形參**user_info中的兩個星號讓Python創(chuàng)建一個空字典迂卢,須放于形參最后位置

????profile={}

????profile['first-name']=first

????profile['last-name']=last

????for k,v in user_info.items():

????????profile[k]=v

? ? return profile

a=build_profile('albert','einstein',location='princeton',field='physics')

print(a)

-->{'first-name': 'albert', 'last-name': 'einstein', 'location': 'princeton', 'field': 'physics'}

5、將函數存儲在模塊中

5.1 導入整個模塊

pizza.py

def make_pizza(size,*toppings):

????print("\nMaking a "+str(size)+"-inch pizza with the following toppings:")

????for topping in toppings:

????????print("-"+topping)

同目錄下making_pizza.py

import pizza? ? ?//引用pizza則pizza.py中所有函數都能用

pizza.make_pizza(16,'pepperoni')

pizza.make_pizza(12,'mushrooms','green peppers','extra cheese')

5.2 導入特定的函數

from module_name import function_name

通過用逗號分隔函數名桐汤,導入任意數量的函數

from module_name import function_0而克,function_1,function_2

5.3 使用as給函數指定別名

from module_name import function_name as fn

5.4 使用as給模塊指定別名

import module_name as mn

5.5 導入模塊中的所有函數

from module_name import *? ? #星號(*)運算符可導入模塊中的所有函數

注意:所有的import語句都應放在文件開頭,唯一例外的情形是怔毛,在文件開頭使用了注釋來描述整個程序

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末员萍,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子拣度,更是在濱河造成了極大的恐慌碎绎,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抗果,死亡現場離奇詭異筋帖,居然都是意外死亡,警方通過查閱死者的電腦和手機冤馏,發(fā)現死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門日麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逮光,你說我怎么就攤上這事代箭。” “怎么了涕刚?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵嗡综,是天一觀的道長。 經常有香客問我副女,道長蛤高,這世上最難降的妖魔是什么筑累? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮都许,結果婚禮上命辖,老公的妹妹穿的比我還像新娘。我一直安慰自己恤批,他們只是感情好异吻,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喜庞,像睡著了一般诀浪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上延都,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天雷猪,我揣著相機與錄音,去河邊找鬼晰房。 笑死求摇,一個胖子當著我的面吹牛,可吹牛的內容都是我干的殊者。 我是一名探鬼主播与境,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猖吴!你這毒婦竟也來了摔刁?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤海蔽,失蹤者是張志新(化名)和其女友劉穎共屈,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體党窜,經...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡趁俊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了刑然。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寺擂。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泼掠,靈堂內的尸體忽然破棺而出怔软,到底是詐尸還是另有隱情,我是刑警寧澤择镇,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布挡逼,位于F島的核電站,受9級特大地震影響腻豌,放射性物質發(fā)生泄漏家坎。R本人自食惡果不足惜嘱能,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虱疏。 院中可真熱鬧惹骂,春花似錦、人聲如沸做瞪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽装蓬。三九已至著拭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牍帚,已是汗流浹背儡遮。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暗赶,地道東北人峦萎。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像忆首,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子被环,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內容

  • emmm糙及,這部分學的很累,也花了很長時間筛欢,但是工欲善其事必先利其器浸锨,基礎是必不可少的。Python的語法相對來說比...
    馬小野閱讀 5,101評論 0 37
  • JSON APIS and AJAX Description:*Introduction to the JSON ...
    王策北閱讀 574評論 0 1
  • SQL------DDL 一版姑、SQL 定義:Structure Query Language(結構化查詢語言)...
    kapok_蒲絲閱讀 244評論 0 0
  • It's Saturday. They drank from the spring, and Laura and ...
    Mr_Oldman閱讀 265評論 1 0
  • 得到當前工作目錄柱搜,即當前Python腳本工作的目錄路徑:os.getcwd() 返回指定目錄下的所有文件和目錄名:...
    Envisage_802b閱讀 217評論 0 2