中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python參數聲明和調用的方法是什么

發布時間:2022-01-26 09:28:30 來源:億速云 閱讀:97 作者:iii 欄目:開發技術

這篇文章主要講解了“Python參數聲明和調用的方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python參數聲明和調用的方法是什么”吧!

什么是函數?

函數是執行特定任務的隔離代碼塊。

函數在編程中很有用,因為它們消除了在整個程序中不必要和過多的代碼復制和粘貼。

如果在不同的地方經常需要某個動作,這是一個很好的指標,你可以為它編寫一個函數。函數是可重用的。

函數還有助于組織您的代碼。

如果您需要進行更改,則只需更新該特定功能。這使您不必通過復制和粘貼來搜索分散在程序中不同位置的相同代碼的不同部分。

這符合軟件開發中的 DRY(不要重復自己)原則。

函數內的代碼僅在函數被調用時運行。

函數可以接受參數和默認值,并且在代碼運行后可能會或不會將值返回給調用者。

如何在 Python 中定義函數

在 Python 中創建函數的一般語法如下所示:

def function_name(parameters):
    function body

讓我們分解一下這里發生的事情:

  • def 是一個關鍵字,告訴 Python 正在定義一個新函數。

  • 接下來是您選擇的有效函數名稱。有效名稱以字母或下劃線開頭,但可以包含數字。單詞是小寫的并用下劃線分隔。重要的是要知道函數名不能是 Python 保留關鍵字。

  • 然后我們有一組左括號和右括號,()。在它們內部,可以有零個、一個或多個可選的逗號分隔參數及其可選的默認值。這些被傳遞給函數。

  • 接下來是一個冒號,:結束函數的定義行。

  • 然后是一個新行,后跟縮進級別(您可以使用鍵盤或使用 1 個 Tab 使用 4 個空格來執行此操作)。縮進很重要,因為它讓 Python 知道哪些代碼將屬于函數。

  • 然后我們有函數的主體。這里是要執行的代碼 - 調用函數時要執行的操作的內容。

  • 最后,函數體中有一個可選的return 語句,在函數退出時將一個值傳回給調用者。

請記住,如果您在嘗試定義新函數時忘記了括號()或冒號:,Python 將報錯:SyntaxError.

如何在 Python 中定義和調用基本函數

下面是一個沒有 return 語句并且不接受任何參數的基本函數的示例。

它只是hello world在被調用時打印。

def hello_world_func():
    print("hello world")

一旦定義了函數,代碼就不會自行運行。

要執行函數內的代碼,您必須進行函數調用或函數調用。

然后,您可以根據需要多次調用該函數。

要調用一個函數,你需要這樣做:

function_name(arguments)

這是代碼的細分:

  • 鍵入函數名稱。

  • 函數名后面必須跟括號。如果有任何必需的參數,它們必須在括號中傳遞。如果函數不接受任何參數,您仍然需要括號。

要調用上面示例中不接受任何參數的函數,請執行以下操作:

hello_world_func()

#Output
#hello world

如何定義和調用帶參數的函數

到目前為止,您已經看到了一些簡單的函數,除了向控制臺打印一些東西之外,它們實際上并沒有做太多事情。

如果你想向函數傳遞一些額外的數據怎么辦?

我們在這里使用了參數等術語。

他們的定義究竟是什么?

參數是將信息傳遞給函數的命名占位符。

它們充當在函數定義行中本地定義的變量。

def hello_to_you(name):
   print("Hello " + name)

在上面的例子中,有一個參數,name。

我們可以使用f-string formatting它來代替——它的工作方式與前面的例子相同:

def hello_to_you(name):
    print(f"Hello {name}")

括號內可以有一個參數列表,所有參數都用逗號分隔。

def name_and_age(name,age):
    print(f"I am {name} and I am {age} years old!")

這里,函數中的參數是name和age。

當一個函數被調用時,參數被傳入。

參數與參數一樣,是傳遞給函數的信息。

特別是,它們是與函數定義中的參數對應的實際值。

調用上一個示例中的函數并傳入參數將如下所示:

def hello_to_you(name):
    print(f"Hello {name}")
    
    
hello_to_you("Timmy")
#Output
# Hello Timmy

該函數可以被多次調用,每次傳入不同的值。

def hello_to_you(name):
    print(f"Hello {name}")
    
hello_to_you("Timmy")
hello_to_you("Kristy")
hello_to_you("Jackie")
hello_to_you("Liv")

#Output:
#"Hello Timmy"
#"Hello Kristy"
#"Hello Jackie"
#"Hello Liv"

到目前為止提出的參數稱為位置參數。

非常需要所有位置參數。

位置參數的數量很重要

調用函數時,需要傳入正確數量的參數,否則會報錯。

對于位置參數,傳遞給函數調用的參數數量必須與函數定義中的參數數量完全相同。

您不能遺漏任何內容或添加任何內容。

假設您有一個接受兩個參數的函數:

def hello_to_you(first_name,last_name):
    print(f"Hello, {first_name} {last_name}")

如果只傳入一個參數調用函數,像這樣,會出現錯誤:

def hello_to_you(first_name,last_name):
    print(f"Hello, {first_name} {last_name}")
    

hello_to_you("Timmy")

輸出:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: hello_to_you() missing 1 required positional argument: 'last_name'

如果在傳入三個參數的情況下調用該函數,則會再次出現錯誤:

def hello_to_you(first_name,last_name):
    print(f"Hello, {first_name} {last_name}")
    

hello_to_you("Timmy","Jones",34)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: hello_to_you() takes 2 positional arguments but 3 were given

如果我們不傳入任何參數,也會出現錯誤。

def hello_to_you(first_name,last_name):
    print(f"Hello, {first_name} {last_name}")
    

hello_to_you()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: hello_to_you() missing 2 required positional arguments: 'first_name' and 'last_name'

相反,我們需要兩個參數,因為函數定義中列出了兩個參數。

def hello_to_you(first_name,last_name):
    print(f"Hello, {first_name} {last_name}")
    

hello_to_you("Timmy","Jones")
#Output:
# Hello,Timmy Jones

位置參數的順序很重要

除了包括正確數量的參數外,重要的是要注意參數傳遞的順序很重要。

參數的傳遞順序必須與函數定義中聲明的參數的順序完全相同。

它的工作原理類似于變量賦值。

第一個參數是函數定義中第一個參數的值。第二個參數是函數 ddefinition 中第二個參數的值——依此類推。

def hello_to_you(first_name,last_name):
    print(f"Hello, {first_name} {last_name}")
    

hello_to_you("Timmy","Jones")
#Output
#Hello,Timmy Jones 
#you can visualise it like:
#first_name = "Timmy"
#last_name = "Jones"

如果順序不正確,輸出可能沒有多大意義,也不是您想要的。

def fave_language(name,language):
    print(f"Hello, I am {name} and my favorite programming language is {language}")

    
fave_language("Python","Dionysia")
#output:
#Hello, I am Python and my favorite programming language is Dionysia
#it is like you did
#name="Python"
#language = "Dionysia"

如何在 Python 函數中使用關鍵字參數

到目前為止,您已經看到了一種類型的參數,位置參數。

使用位置參數,只使用在函數調用中傳遞的值來調用函數。在那里,每個值直接對應于函數定義中每個參數的數量、順序和位置。

然而,Python 中的函數可以接受另一種類型的參數,即關鍵字參數。

在這種情況下,不是在函數調用中只傳遞值,而是指定參數的名稱,然后指定要分配給它的值,格式為key = value.

每個鍵匹配函數定義中的每個參數。

顯式調用參數名稱和它們采用的值有助于更清楚地了解您傳入的內容并避免任何可能的混淆。

def fave_language(name,language):
    print(f"Hello, I am {name} and my favorite programming language is {language}")

    
fave_language(name="Dionysia",language="Python")
#output:
#Hello, I am Dionysia and my favorite programming language is Python

如上所示,關鍵字參數可以按特定順序排列。但它們比位置參數更靈活,因為參數的順序現在無關緊要。

所以你可以這樣做并且不會有錯誤:

def fave_language(name,language):
    print(f"Hello, I am {name} and my favorite programming language is {language}")

    
fave_language(language="Python",name="Dionysia")
#output:
#Hello, I am Dionysia and my favorite programming language is Python

但是您仍然必須提供正確數量的參數。

您可以在函數調用中同時使用位置參數和關鍵字參數,如下例所示,其中有一個位置參數和一個關鍵字參數:

def fave_language(name,language):
    print(f"Hello, I am {name} and my favorite programming language is {language}")

    
fave_language("dionysia",language="Python")
#output:
#Hello, I am dionysia and my favorite programming language is Python

在這種情況下,順序又很重要。

位置參數總是首先出現,所有關鍵字參數都應該跟在位置參數之后。否則會報錯:

def fave_language(name,language):
    print(f"Hello, I am {name} and my favorite programming language is {language}")

    
fave_language(language="Python","dionysia")

如何在 Python 中定義具有默認值的參數

函數參數也可以有默認值。它們被稱為默認或可選參數。

對于具有默認值的函數參數,您必須為函數定義中的參數分配一個默認值。

您使用key=value表單執行此操作,其中value將是該參數的默認值。

def fave_language(language="python"):
    print(f"My favorite  programming language is {language}!")
    
fave_language()
#output
#My favorite  programming language is python!

正如你看到的,都是缺省參數未在函數調用所需,和值language將始終默認到Python如果呼叫中沒有提供其他值。

但是,如果您在函數調用中提供另一個值,則可以輕松覆蓋默認值:

def fave_language(language="python"):
    print(f"My favorite  programming language is {language}!")
    
fave_language("Java")
#prints "My favorite  programming language is Java!" to the console

可以有多個默認值傳遞給函數。

調用函數時,可以提供無、一個、部分或全部默認參數,順序無關緊要。

def personal_details(name="Jimmy",age=28,city="Berlin"):
    print(f"I am {name},{age} years old and live in {city}") 
    
#We can do:

personal_details()
#output:
#I am Jimmy,28 years old and live in Berlin

personal_details(age=30)
#I am Jimmy,30 years old and live in Berlin

personal_details(city="Athens",name="Ben",age=24)
##I am Ben,24 years old and live in Athens

默認參數可以與函數調用中的非默認參數組合。

這是一個接受兩個參數的函數:一個是位置性的,非默認的 ( name) 和一個可選的,默認的 ( language)。

def fave_language(name,language="Python"):
    print(f"My name is {name} and my favorite  programming language is {language}!")
    
fave_language("Dionysia")
#output:
#"My name is Dionysia and my favorite  programming language is Python!"

默認參數langyage="Python"是optional。但是位置參數 ,name總是需要的。如果language未傳入另一個,則該值將始終默認為 Python。

這里要提到的另一件事是,當默認值和非默認值一起使用時,它們在函數定義中的定義順序很重要。

所有位置參數都在前面,然后是默認參數。

這將不起作用:

def fave_language(language="Python",name):
    print(f"My name is {name} and my favorite  programming language is {language}!")
    
fave_language("Dionysia")

輸出:

 File "<stdin>", line 1
SyntaxError: non-default argument follows default argument

感謝各位的閱讀,以上就是“Python參數聲明和調用的方法是什么”的內容了,經過本文的學習后,相信大家對Python參數聲明和調用的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

磴口县| 紫金县| 怀仁县| 屏东县| 岢岚县| 三穗县| 宁武县| 新郑市| 九龙城区| 汝阳县| 玛纳斯县| 嵊泗县| 巴青县| 江城| 商城县| 海兴县| 霍林郭勒市| 交城县| 武乡县| 阿荣旗| 博客| 黔南| 玉门市| 马关县| 汝城县| 大田县| 三明市| 宝坻区| 清涧县| 竹溪县| 青河县| 寿宁县| 灵璧县| 泾阳县| 和龙市| 盐津县| 普兰店市| 邻水| 且末县| 砀山县| 梧州市|