您好,登錄后才能下訂單哦!
今天小編給大家分享一下Python函數語句怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
Python 中函數的應用非常廣泛,比如 input() 、print()、range()、len() 函數等等,這些都是 Python 的內置函數,可以直接使用。
如果調用print()或者len()函數,你會傳入一些值,放在括號之間,在這里稱為“參數”。也可以自己定義接收參數的函數。
>>> def hello (name):print('hello '+ name) >>> hello('alice') hello alice >>> hello('bob') hello bob
在這個程序的hello()函數定義中,有一個名為name的變元。“變元”是一個變量,當函數被調用時,參數就存放在其中。
【注】保存在變元中的值,在函數返回后就丟失了。
函數調用求值的結果,稱為函數的“返回值”。
用def語句穿創建函數時,可以用return語句指定應該返回什么值。return語句也包含以下部分
如果在return語句中使用了表達式,返回值就是該表達式求值的結果。
在python中有一個值稱為None,他表示沒有值。None是NoneType數據類型的唯一值。 print()函數在屏幕上顯示文本,但他不需要返回任何值,這就和len()和input()不同。但既然所有函數調用都需要求值為一個返回值,那么print()就返回None
>>> spam = print('hello') hello >>> None ==spam True >>>
在幕后,對于沒有return語句的函數定義,python都會在末尾加上return None。這類似于while或者fo循環隱式的以continue語句結尾。而且,如果使用帶值的return語句(也就是只有return關鍵字本身),那么就返回None。
大多數參數是由他們在函數調用中的位置來識別的。但是“關鍵字參數”是有函數調用是加在他們前面的關鍵字來識別的。關鍵字參數通常用于可選變元*。例如,print()函數有可選的變元end和sep,分別指定在參數末尾打印什么,以及在參數之間打印什么來隔開它們*
>>> print('dog','cat','mice') dog cat mice >>> print('dog','cat','mice',sep=',') dog,cat,mice >>>
在被調用函數內賦值的變元和變量,處于該函數的“局部作用域”,在所有函數之外復制的變量,屬于“全局作用域”。處于局部作用域的變量,被稱為“局部變量”。處于全局作用域的變量,被稱為“全局變量”。一個變量必是其中的一種,不能既是全局有事局部的。 可以將“作用域”看成是變量的容器。當作用域被銷毀時,所有保存在該作用域內的變量值就被丟棄了。
作用域很重要,理由如下:
3.5.1 局部變量不能在全局作用域內使用
def spam(): eggs = 111 spam()print(eggs)
如果運行這個程序就會出錯,eggs變量只屬于spam()調用所創建的局部作用域。
3.5.2 局部作用域不能使用其他局部作用內的變量
def spam(): eggs = 99 bacon() print(eggs) def bacon() ham = 101 eggs = 0 spam()
程序運行時,spam()被調用,創建一個局部作用域。局部變量eggs被賦值為99。然后bacon()函數被調用,創建第二個作用域。多個局部作用域能同時存在。在這新的局部作用域中,局部變量ham也被創建被賦值為101。局部變量eggs也被創建并賦值為0。 當bacon()返回時,這次調用的局部作用域被銷毀。程序執行在spam()函數中繼續,打印出eggs的值。這次spam()調用的局部作用域任然存在,eggs被賦值為99.
3.5.3 全局變量可以在局部作用域中讀取
def spam(): print(eggs) eggs = 42 spam()print(eggs)
如果需要在一個函數內修改全局變量,就是用global語句
有四條法則,來區分一個變量是處于局部作用域還是全局作用域
當程序運行出錯時,可以用try和except語句來處理。那些可能出錯的語句被放在try子句中。如果錯誤發生,程序執行就轉到接下來的except子句開始處。
如果try子句中的代碼導致一個錯誤,程序執行就立即轉到except子句中的代碼,一旦執行跳到except子句的代碼中,就不會回到try的子句中了
import random secretNumber = random.randint(1,20)print('i am think of number between 1 and 20:')for guessesTaken in range(1,7): print('take a guess') guess = int(input()) if guess print('you guess is too low.') elif guess > secretNumber: print('you guess is too high') else: breakif guess == secretNumber: print('good job!the number i was thinking of was ' + str(secretNumber)+ ' and you guessed my number in ' + str(guessesTaken) + ' guesses')else: print('Nope. the number i was thinking of was ' + str(secretNumber))
Collatz 序列 編寫一個名為 collatz()的函數,它有一個名為 number的參數。如果參數是偶數,那么 collatz()就打印出 number // 2,并返回該值。如果 number是奇數,collatz()就打印并返回 3 * number + 1。
然后編寫一個程序,讓用戶輸入一個整數,并不斷對這個數調用collatz(),直到函數返回值1(令人驚奇的是,這個序列對于任何整數都有效,利用這個序列, 你遲早會得到 1!既使數學家也不能確定為什么。你的程序在研究所謂的“Collatz 序列”,它有時候被稱為“最簡單的、不可能的數學問題”)。
在前面的項目中添加 try 和 except 語句,檢測用戶是否輸入了一個非整數的字符串。正常情況下,int()函數在傳入一個非整數字符串時,會產生 ValueError 錯誤,比如 int(‘puppy’)。在 except子句中,向用戶輸出一條信息,告訴他們必須輸入一個整數。
示例代碼1:
def collatz(number): if number == 1: return 1 elif number % 2 == 0: numbers = number//2 print(numbers) collatz(numbers) elif number % 2 == 1: numbers = 3*number+1 print(numbers) collatz(numbers)print('please input a number') try: number = int(input()) collatz(number) except ValueError: print('please input a integer number')
示例代碼 2:
def collatz(number): if number % 2 == 0: numbers = number//2 return numbers else: numbers = 3*number+1 return numbersprint('please input a integer number') try: number=int(input()) while collatz(number) != 1: print(collatz(number)) new_number=collatz(number) number = new_number collatz(number) print(collatz(number)) except ValueError: print('please input a integer')
以上就是“Python函數語句怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。