Python函數學習(一)

    print("\tfullname is "+fullname.title())
    print("\tlocation is "+location.title())
函數調用時傳遞給函數的信息是實參,
編寫一個名爲display_message() 的函數,它打印一個句子,指出你在本章學的是什麼。調用這個函數,確認顯示的消息正確無誤
 
#喜歡的圖書的圖書 :編寫一個名爲favorite_book() 的函數,
# 其中包含一個名爲title 的形參。這個函數打印一條消息,
# 如One of my favorite books is Alice in Wonderland 。調用這個函數,並將一本圖書的名稱作爲實參傳遞給它。
def favorite_book(title):
    print("one of my favorite book is "+title)

favorite_book('Alice in Wonderlan')
 
 
向函數傳遞實參的方式很多:
可使用位置實參,這要求實參的順序與形參的順序相同;
也可使用關鍵字實參,其中每個實參都由變量名組成;
還可使用列表和字典
在函數中,可根據需要使用任意數量的位置實參,
Python將按順序將函數調用中的實參關聯到函數定義中相應的形參

關鍵字實參

關鍵字實參 是傳遞給函數的名稱—值對。你直接在實參中將名稱和值關聯起來了,因此向函數傳遞實參時不會混淆(不會得到名爲Hamster的harry這樣的結果)。關鍵字實參讓你無需考慮函數調用中的實參順序,還清楚地指出了函數調用中各個值的用途。

def describle_pet(animal_type,animal_name):
   
print("\nI have a "+animal_type+".")
   
print("My "+animal_type+"'s name is "+animal_name+".")
describle_pet(
animal_type='hamster',animal_name='harry')
describle_pet(
animal_name='maomao',animal_type='dog')

 

關鍵字實參的順序無關緊要,因爲Python知道各個值該存儲到哪個形參中。注意:使用關鍵字實參時,務必準確地指定函數定義中的形參名

 

使用默認值時,在形參列表中必須先列出沒有默認值的形參,再列出有默認值的實參。這讓Python依然能夠正確地解讀位置實參。

等你開始使用函數後,如果遇到實參不匹配錯誤,不要大驚小怪。你提供的實參多於或少於函數完成其工作所需的信息時,將出現實參不匹配錯誤。

 

編寫一個名爲describe_city() 的函數,它接受一座城市的名字以及該城市所屬的國家。這個函數應打印一個簡單的句子,如Reykjavik is in Iceland 。給用於存儲國家的形參指定默認值。爲三座不同的城市調用這個函數,且其中至少有一座城市不屬於默認國家

描述城市國家的函數
defdescrible_city(city,country='China'):
   
print(city+"is in "+country+'\n')
describle_city(
'Beijing')
describle_city(
'Lundon')

describle_city('Shanghai')


函數並非總是直接顯示輸出,相反,它可以處理一些數據,並返回一個或一組值。函數返回的值被稱爲返回。在函數中,可使用return 語句將值返回到調用函數的代碼行。 返回值讓你能夠將程序的大部分繁重工作移到函數中去完成,從而簡化主程序。

#返回簡單值
def get_formatted_name(first_name,last_name):
    full_name=first_name+
" "+last_name
   
return full_name.title()
muscian=get_formatted_name(
'jimi','hendrix')

print(muscian)

在需要分別存儲大量名和姓的大型程序中,像get_formatted_name() 這樣的函數非常有用。你分別存儲名和姓,每當需要顯示姓名時都調用這個函數。


#讓實參變成可選的

並非所有的人都有中間名,但如果你調用這個函數時只提供了名和姓,它將不能正確地運行。爲讓中間名變成可選的,可給實參middle_name 指定一個默認值——空字 符串,並在用戶沒有提供中間名時不使用這個實參。爲讓get_formatted_name() 在沒有提供中間名時依然可行,可給實參middle_name 指定一個默認值——空字符串, 並將其移到形參列表的末尾

def get_formatted_name(first_name,last_name,middle_name=''):
    if middle_name:
        full_name = first_name + " " + middle_name + " " + last_name
    else:
        full_name = first_name + " " + last_name
    return full_name.title()
muscian1=get_formatted_name('jimi','miss','hendrix')
muscian2=get_formatted_name('jin','ye')
print(muscian1)
print(muscian2)
調用這個函數時,如果只想指定名和姓,調用起來將非常簡單。如果還要指定中間名,
就必須確保它是最後一個實參,這樣Python才能正確地將位置實參關聯到形參
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章