python的def语句_【零基础学Python】def语句,参数和None值
像之前的print()、input()和len()功能,Python提供了一些類似的內置函數,另外也可以自己編寫自定義函數。
示例:
def hello():
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
hello()
第一行是def語句,它定義了一個名為hello()的函數。def語句之后的代碼塊是函數的主體。該代碼是在調用函數時執行,而不是在首次定義函數時執行。
最后的hello()功能是函數調用。在代碼中,函數調用只是函數的名稱,后跟括號,括號里面可能帶有一些參數。當程序運行到這些調用時,它將跳到函數的第一行并在那里開始執行代碼。當運行到函數末尾時,程序運行將返回到調用函數的那一行,并像之前一樣繼續遍歷運行代碼。
當運行該段程序時,輸出如下:
Howdy!
Howdy!!!
Hello there.
帶有參數的DEF語句
調用print()或len()函數時,可以通過在括號之間鍵入值來傳遞在此上下文中稱為參數的值。還可以定義自己的接收參數的函數。
示例:
def hello(name):
print('Hello ' + name)
hello('Alice')
hello('Bob')
當運行該程序時,輸出如下:
Hello Alice
Hello Bob
該hello()程序中函數的定義具有一個稱為parameter的參數name。參數時一個變量,它被存儲在一個函數里被調用。第一次調用hello()函數時,帶有參數’Alice'。程序運行進入函數,變量name自動設置為'Alice',然后通過print()輸出。
關于參數需要特別注意一點,函數返回時會忘記存儲在參數中的值。舉個例子,如果在hello('Bob')之后加print(name),程序將會報錯,因為name沒有被命名,而這個定義已經在hello('Bob')被調用返回后被回收了。
返回值和返回語句
當調用len()函數并將參數傳遞給'Hello',函數調用的結果為整數值5,即傳遞的字符串的長度。通常,函數調用求值的值稱為函數的返回值。
使用def語句創建函數時,可以使用語句指定返回值return。一個return語句由以下部分組成:return關鍵字
函數應返回的值或表達式
當表達式與return語句一起使用時,返回值就是該表達式的計算結果。例如,以下程序定義了一個函數,該函數根據作為參數傳遞的數字返回一個不同的字符串。
import random
def getAnswer(answerNumber):
if answerNumber == 1:
return 'It is certain'
elif answerNumber == 2:
return 'It is decidedly so'
elif answerNumber == 3:
return 'Yes'
elif answerNumber == 4:
return 'Reply hazy try again'
elif answerNumber == 5:
return 'Ask again later'
elif answerNumber == 6:
return 'Concentrate and ask again'
elif answerNumber == 7:
return 'My reply is no'
elif answerNumber == 8:
return 'Outlook not so good'
elif answerNumber == 9:
return 'Very doubtful'
r = random.randint(1, 9)
fortune = getAnswer(r)
print(fortune)
該程序啟動時,Python首先導入random模塊。然后getAnswer()定義函數,由于函數是已經定義的,因此執行將跳過其中的代碼。接下來,random.randint(1, 9)函數調用有兩個參數,1和9。它的計算結果是1和9之間(包括1和9本身)的隨機整數,并且此值存儲在變量r中。
將該r作為參數的getAnswer()函數調用,程序運行值getAnswer()函數的頭部,該值r存儲在參數answerNumber。然后,根據answerNumber判斷返回對應的字符串值。程序運行返回到程序最底部fortune = getAnswer(r),返回的字符串被賦值給了變量fortune,然后傳遞給print()調用,輸出。
請注意,由于可以將返回值作為參數傳遞給另一個函數調用,因此可以縮短以下三行:
r = random.randint(1,9)
fortune = getAnswer(r)
print(fortune)
等效于
print(getAnswer(random.randint(1,9)))
None值
在python中,有一個名為None的值,表示沒有值。None是NoneType數據類型的唯一值。(其他編程語言則為null,nil或underfined)就像True和False,None的首字母必須大寫
當需要將不會與真實值混淆的內容存儲在變量中時,None會很有用。
比如:
>>> spam = print('Hello!')
Hello!
>>> None == spam
True
在Python中,在沒有return聲明的情況下將return None添加到任何函數定義的末尾。這類似于while 或 for循環以continue語句隱式結束的方式。另外,如果使用return不帶值的情況,也會返回None。
關鍵字參數和PRINT()
大多數參數由他們在函數調用中的位置標識。例如,random.randint(1, 10)與random.randint(10, 1)不同。函數調用random.randint(1, 10)將返回1和10之間的隨機整數,因為第一個參數是范圍的低端,第二個參數是高端(而random.randint(10, 1)會導致錯誤)
然而,關鍵字參數在函數調用中會被他們之前的關鍵字標識。關鍵字參數也通常用于可選參數。
例如:
print('Hello',end ='')
print('World')
輸出:
HelloWorld
輸出被打印在一行上,因為在之后不再打印新行’Hello',而是打印空白字符串,如果需要禁用每個print()函數調用末尾的換行符,這將很有用。
同樣,可以將多個字符串值傳遞給print(),該函數將自動用空格分隔他們。
>>> print('cats', 'dogs', 'mice')
cats dogs mice
當然,也可以通過傳遞關鍵字參數sep來替換默認的分隔字符串。如:
>>> print('cats', 'dogs', 'mice', sep=',')
cats,dogs,mice
當然你也可以在自定義函數中添加關鍵字參數。后面的文章將會涉及。
文檔:【零基礎學Python】def語句,參數和None值 - 掘金?juejin.im
總結
以上是生活随笔為你收集整理的python的def语句_【零基础学Python】def语句,参数和None值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java多线程并行执行命令_深入理解Ja
- 下一篇: pycharm镜像源_pycharm安装