最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python編程入門指南之函數(shù)

 更新時(shí)間:2022年01月12日 09:11:15   作者:BetaDu  
這篇文章主要為大家介紹了Python編程之函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

Python編程:函數(shù)

函數(shù)是帶名字的代碼塊,用于完成具體的工作。要執(zhí)行函數(shù)定義的特定任務(wù),可調(diào)用該函數(shù)。需要在程序中多次執(zhí)行同一項(xiàng)任務(wù)時(shí),你無(wú)需反復(fù)編寫完成該任務(wù)的代碼,而只需調(diào)用執(zhí)行該任務(wù)的函數(shù),讓 Python 運(yùn)行其中的代碼。函數(shù)可以極大地簡(jiǎn)化代碼編寫與讓代碼結(jié)構(gòu)清晰化。

定義和調(diào)用函數(shù)

>>>def greeting():
>>>  """簡(jiǎn)單問候"""
>>>  print("Hello!")

關(guān)鍵字 def 來(lái)告訴 Python 你要定義一個(gè)函數(shù),后面緊跟函數(shù)名。在括號(hào)內(nèi)指出函數(shù)為完成其任務(wù)需要什么樣的信息。緊跟在 def greet_user(): 后面的所有縮進(jìn)行構(gòu)成了函數(shù)體。三引號(hào)(""" “”")內(nèi)的文本是被稱為**文檔字符串( docstring )**的注釋,描述了函數(shù)是做什么的,Python 使用它們來(lái)生成有關(guān)程序中函數(shù)的文檔。

>>>greeting()
Hello!

調(diào)用函數(shù),可依次指定函數(shù)名以及用括號(hào)括起的必要信息。

向函數(shù)傳遞信息

如果我們?cè)诖蛘泻魰r(shí),需要用戶的名字用作抬頭。為此,可在函數(shù)定義 def greet_user() 的括號(hào)內(nèi)添加 username。

>>>def greeting(username):
>>>  """簡(jiǎn)單問候用戶"""
>>>  print("Hello,"+username.title()+"!")
greeting("jessi")
Hello,Jessi!

在函數(shù)greet_user() 的定義中,變量 username 是一個(gè) 形參 —— 函數(shù)完成其工作所需的一項(xiàng)信息。在代碼 greet_user(‘jesse’) 中,值 ‘jesse’ 是一個(gè) 實(shí)參——調(diào)用函數(shù)時(shí)傳遞給函數(shù)的信息。將實(shí)參傳遞給函數(shù)并存儲(chǔ)在形參中。

傳遞實(shí)參:位置實(shí)參

你調(diào)用函數(shù)時(shí), Python 必須將函數(shù)調(diào)用中的每個(gè)實(shí)參都關(guān)聯(lián)到函數(shù)定義中的一個(gè)形參。

最簡(jiǎn)單的關(guān)聯(lián)方式是基于實(shí)參的順序,這種關(guān)聯(lián)方式被稱為位置實(shí)參。此時(shí)調(diào)用函數(shù)時(shí)實(shí)參的位置十分重要,需要與形參對(duì)應(yīng),不然會(huì)引發(fā)邏輯錯(cuò)誤。

>>>def describe_pet(animal_type, pet_name):
>>>""" 顯示寵物的信息 """
>>>print("My " + animal_type + "'s name is " + pet_name.title() + ".")

>>>describe_pet('hamster', 'harry')
My hamster's name is Harry.

傳遞實(shí)參:關(guān)鍵字實(shí)參

關(guān)鍵字實(shí)參是傳遞給函數(shù)值時(shí),直接在實(shí)參中將名稱和值關(guān)聯(lián)起來(lái)。此時(shí)實(shí)參的位置不再重要,形參所對(duì)應(yīng)的值已經(jīng)明示了。

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

傳遞實(shí)參:默認(rèn)值

編寫函數(shù)時(shí),可給每個(gè)形參指定 默認(rèn)值 。在調(diào)用函數(shù)中給形參提供了實(shí)參時(shí), Python 將使用指定的實(shí)參值,否則,將使用形參的默認(rèn)值。默認(rèn)值必須放在形參最后。

>>>def describe_pet(pet_name, animal_type='dog'):
   -snip-
>>>describe_pet(pet_name='willie')

你提供的實(shí)參多于或少于函數(shù)完成其工作所需的信息時(shí),將出現(xiàn)實(shí)參不匹配錯(cuò)誤。

傳遞列表

將列表傳遞給函數(shù)可以提升列表處理的效率。比如將用戶姓名列表 username 傳遞給 greeting() 函數(shù)可以生成批量打招呼的輸出。

def greeting(usernames):
"""給用戶打招呼"""
	for name in usernames:
    print("Hello, " + name.title() + "!")

禁止函數(shù)修改列表

有了傳遞列表的功能我們就可以批量修改列表中的數(shù)據(jù)。有時(shí)候,我們需要獲取列表中的數(shù)據(jù)而保持原始列表不變,此時(shí)就要使用切片表示法禁止修改列表。此時(shí)函數(shù)處理的是列表的副本,而原始列表不變。

function_name(list_name[:]) 

傳遞任意數(shù)量實(shí)參

當(dāng)顧客要點(diǎn)一個(gè)pizza,我們不知道ta要點(diǎn)多少種配料,就可以寫成如下形式:

>>>def make_pizza(*toppings):
>>>    -snip-

形參名 *toppings 中的星號(hào)讓 Python 創(chuàng)建一個(gè)名為 toppings 的空元組,并將收到的所有值都封裝到這個(gè)元組中。

結(jié)合使用位置實(shí)參和任意數(shù)量實(shí)參

如果顧客要點(diǎn)一個(gè)pizza并且告知它的尺寸和配料:

>>>def make_pizza(size, *toppings):
>>> 	-snip

使用任意數(shù)量的關(guān)鍵字實(shí)參

有時(shí)候,需要接受任意數(shù)量的實(shí)參,但預(yù)先不知道傳遞給函數(shù)的會(huì)是什么樣的信息。在這種情況下,可使用字典接收輸入的實(shí)參。

>>>def build_profile(**user_info):
	"""創(chuàng)建字典存儲(chǔ)用戶信息"""
    profile{}
    for key,value in user_info.items():
      profile[key]=value
    return profile
>>>user_profile=build_profile(local='London',field='physics')
>>>print(user_profile)
{'local':'London','field':'physics'}

形參 **user_info 中的兩個(gè)星號(hào)讓 Python 創(chuàng)建一個(gè)名為 user_info 的空字典,并將收到的所有鍵值對(duì)都封裝到這個(gè)字典中。

返回值

函數(shù)并非總是直接顯示輸出,相反,它可以處理一些數(shù)據(jù),并返回一個(gè)或一組值。函數(shù)返回的值被稱為返回值 。

可使用return返回調(diào)用函數(shù)的代碼行。返回值讓你能夠?qū)⒊绦虻拇蟛糠址敝毓ぷ饕频胶瘮?shù)中去完成,從而簡(jiǎn)化主程序。

返回簡(jiǎn)單值

可將輸出完整姓名提出來(lái)作為一個(gè)函數(shù)模塊,此時(shí)主程序只有兩行:

>>>def get_formatted_name(first_name, middle_name, last_name):
>>>""" 返回整潔的姓名 """
>>>	full_name = first_name + ' ' + middle_name + ' ' + last_name
>>>	return full_name.title()

>>>musician = get_formatted_name('john', 'lee', 'hooker')
>>>print(musician)
John Lee Hooker

讓實(shí)參可選

有時(shí)候,需要讓實(shí)參變成可選的,這樣使用函數(shù)的人就只需在必要時(shí)才提供額外的信息。

例如,有些人的名字有中間名,有些人沒有,我們就可以給實(shí)參 middle_name 指定一個(gè)默認(rèn)值 —— 空字符串,
并將其移到形參列表的末尾:

>>>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

返回字典

函數(shù)可返回任何類型的值,包括列表和字典等較復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

>>>def build_person(first_name,last_name):
  """返回包含人物信息的字典"""
>>>   person={'first':first_name,'last':last_name}
>>>   return person

將函數(shù)存儲(chǔ)在模塊中

函數(shù)的優(yōu)點(diǎn)之一是,使用它們可將代碼塊與主程序分離。我們可以更進(jìn)一步將函數(shù)存儲(chǔ)在模塊中,在主程序中導(dǎo)入模塊。

導(dǎo)入整個(gè)模塊

模塊是擴(kuò)展名為 .py 的文件,包含要導(dǎo)入到程序中的代碼。

import pizza

代碼行 import pizza 讓 Python 打開文件 pizza.py ,并將其中的所有函數(shù)都復(fù)制到這個(gè)程序中。調(diào)用模塊中的函數(shù)用句點(diǎn)法:

module_name.function_name()

導(dǎo)入特定函數(shù)

如果你不需要模塊中的所有函數(shù),只需要其中某個(gè)特定函數(shù):

from module_name import function_name
from module_name import function_name  #導(dǎo)入模塊中某幾個(gè)函數(shù)

使用as給函數(shù)指定別名

如果要導(dǎo)入的函數(shù)的名稱可能與程序中現(xiàn)有的名稱沖突,或者函數(shù)的名稱太長(zhǎng),可指定簡(jiǎn)短而獨(dú)一無(wú)二的 別名 —— 函數(shù)的另一個(gè)名稱,類似于外號(hào)。

from pizza import make_pizza as mp  #將函數(shù)make_pizza()重新命名為mp()

使用as給模塊指定別名

你還可以給模塊指定別名。這樣不僅能使代碼更簡(jiǎn)潔,還可以讓你不再關(guān)注模塊名,而專注于描述性的函數(shù)名。這些函數(shù)名明確地指出了函數(shù)的功能,對(duì)理解代碼而言,它們比模塊名更重要。

import module_name as mn

導(dǎo)入模塊中的所有函數(shù)

from module_name import * 

import 語(yǔ)句中的 * 讓 Python 將模塊 pizza 中的每個(gè)函數(shù)都復(fù)制到這個(gè)程序文件中。由于導(dǎo)入了每個(gè)函數(shù),可通過名稱來(lái)調(diào)用每個(gè)函數(shù),而無(wú)需使用句點(diǎn)表示法。

然而,最好不要采用這種導(dǎo)入方法:如果模塊中有函數(shù)的名稱與你的項(xiàng)目中使用的名稱相同,可能導(dǎo)致意想不到的結(jié)果: Python 可能遇到多個(gè)名稱相同的函數(shù)或變量,進(jìn)而覆蓋函數(shù),而不是分別導(dǎo)入所有的函數(shù)。

函數(shù)編寫指南

1.應(yīng)給函數(shù)指定描述性名稱,且只在其中使用小寫字母和下劃線

2.每個(gè)函數(shù)都應(yīng)包含簡(jiǎn)要地闡述其功能的注釋,該注釋應(yīng)緊跟在函數(shù)定義后面,并采用文檔字符串格式

3.給形參指定默認(rèn)值時(shí)與使用關(guān)鍵字實(shí)參時(shí),等號(hào)兩邊不要有空格

4.如果程序或模塊包含多個(gè)函數(shù),可使用兩個(gè)空行將相鄰的函數(shù)分開

5.所有的 import 語(yǔ)句都應(yīng)放在文件開頭,唯一例外的情形是,在文件開頭使用了注釋來(lái)描述整個(gè)程序

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • django 郵件發(fā)送模塊smtp使用詳解

    django 郵件發(fā)送模塊smtp使用詳解

    這篇文章主要介紹了django 郵件發(fā)送模塊smtp使用詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python實(shí)現(xiàn)2048小游戲

    python實(shí)現(xiàn)2048小游戲

    本文給大家分享的是個(gè)人修改自某網(wǎng)友的Python實(shí)現(xiàn)2048小游戲的代碼,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • Python內(nèi)建類型bytes深入理解

    Python內(nèi)建類型bytes深入理解

    這篇文章主要為大家介紹了Python內(nèi)建類型bytes的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python3視頻轉(zhuǎn)字符動(dòng)畫的實(shí)例代碼

    Python3視頻轉(zhuǎn)字符動(dòng)畫的實(shí)例代碼

    這篇文章主要介紹了Python3視頻轉(zhuǎn)字符動(dòng)畫的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python 非遞歸解決n皇后問題的方法

    python 非遞歸解決n皇后問題的方法

    這篇文章主要介紹了python 非遞歸解決n皇后問題的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Python Word文件自動(dòng)化實(shí)戰(zhàn)之簡(jiǎn)歷篩選

    Python Word文件自動(dòng)化實(shí)戰(zhàn)之簡(jiǎn)歷篩選

    本文將利用Python自動(dòng)化做一個(gè)具有實(shí)操性的小練習(xí),即通過讀取簡(jiǎn)歷來(lái)篩選出符合招聘條件的簡(jiǎn)歷。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • Python利用FFmpeg處理音視頻的詳細(xì)教程

    Python利用FFmpeg處理音視頻的詳細(xì)教程

    FFmpeg是一個(gè)功能強(qiáng)大的開源多媒體處理工具,能夠處理幾乎所有類型的音頻和視頻文件,在Python中,通過ffmpeg-python庫(kù),我們可以輕松地在Python腳本中調(diào)用FFmpeg的功能,本教程將詳細(xì)介紹如何在Python中使用ffmpeg-python庫(kù),并通過實(shí)際案例展示其用法,需要的朋友可以參考下
    2024-08-08
  • 使用python進(jìn)行nc轉(zhuǎn)tif的3種情況解決

    使用python進(jìn)行nc轉(zhuǎn)tif的3種情況解決

    在進(jìn)行氣候分析時(shí),很多人都會(huì)用到ERA5數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于如何使用python進(jìn)行nc轉(zhuǎn)tif的3種情況的解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Python使用Socket(Https)Post登錄百度的實(shí)現(xiàn)代碼

    Python使用Socket(Https)Post登錄百度的實(shí)現(xiàn)代碼

    以前都是用一些高級(jí)模塊,封裝的比較好,今天嘗試使用socket模塊登錄百度,弄了半天才弄好,主要由于百度在登陸頁(yè)使用了https,我們需要對(duì)socket進(jìn)行一定處理
    2012-05-05
  • Python練習(xí)之操作SQLite數(shù)據(jù)庫(kù)

    Python練習(xí)之操作SQLite數(shù)據(jù)庫(kù)

    這篇文章主要介紹了Python練習(xí)之操作SQLite數(shù)據(jù)庫(kù),主要通過三個(gè)問題如何創(chuàng)建SQLite數(shù)據(jù)庫(kù)?如何向SQLite表中插入數(shù)據(jù)?如何查詢SQLite表中的數(shù)據(jù)?展開文章主題詳情,需要的朋友可以參考一下
    2022-06-06

最新評(píng)論

眉山市| 荃湾区| 嘉善县| 罗田县| 五大连池市| 杭州市| 富顺县| 中西区| 西青区| 松江区| 璧山县| 禄劝| 南昌市| 安顺市| 南阳市| 临猗县| 聂拉木县| 株洲市| 乳山市| 宣城市| 综艺| 贺州市| 辽中县| 苗栗县| 永顺县| 仙游县| 锡林浩特市| 和林格尔县| 舞阳县| 法库县| 双鸭山市| 彩票| 东兴市| 灵璧县| 青龙| 郴州市| 精河县| 夹江县| 苏州市| 繁昌县| 正宁县|