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

溫馨提示×

溫馨提示×

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

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

Python函數語句怎么用

發布時間:2022-01-25 09:39:22 來源:億速云 閱讀:184 作者:iii 欄目:開發技術

今天小編給大家分享一下Python函數語句怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Python 中函數的應用非常廣泛,比如 input() 、print()、range()、len() 函數等等,這些都是 Python 的內置函數,可以直接使用。

Python函數語句怎么用

3.1 def語句和參數

如果調用print()或者len()函數,你會傳入一些值,放在括號之間,在這里稱為“參數”。也可以自己定義接收參數的函數。

>>> def hello (name):print('hello '+ name)
>>> hello('alice')
hello alice
>>> hello('bob')
hello bob

在這個程序的hello()函數定義中,有一個名為name的變元。“變元”是一個變量,當函數被調用時,參數就存放在其中。

【注】保存在變元中的值,在函數返回后就丟失了。

3.2 返回值和return語句

函數調用求值的結果,稱為函數的“返回值”。

用def語句穿創建函數時,可以用return語句指定應該返回什么值。return語句也包含以下部分

  • return 關鍵字
  • 函數應該返回的值或表達式

如果在return語句中使用了表達式,返回值就是該表達式求值的結果。

3.3 None值

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

3.4關鍵字參數和print()

大多數參數是由他們在函數調用中的位置來識別的。但是“關鍵字參數”是有函數調用是加在他們前面的關鍵字來識別的。關鍵字參數通常用于可選變元*。例如,print()函數有可選的變元end和sep,分別指定在參數末尾打印什么,以及在參數之間打印什么來隔開它們*

>>> print('dog','cat','mice')
dog cat mice
>>> print('dog','cat','mice',sep=',')
dog,cat,mice
>>>

3.5 局部作用域

在被調用函數內賦值的變元和變量,處于該函數的“局部作用域”,在所有函數之外復制的變量,屬于“全局作用域”。處于局部作用域的變量,被稱為“局部變量”。處于全局作用域的變量,被稱為“全局變量”。一個變量必是其中的一種,不能既是全局有事局部的。 可以將“作用域”看成是變量的容器。當作用域被銷毀時,所有保存在該作用域內的變量值就被丟棄了。

作用域很重要,理由如下:

  • 全局作用域中的代碼不能使用任何局部變量
  • 但是,局部作用域可以訪問全局變量
  • 一個函數的局部作用域中的代碼,不能使用其他局部作用域中的變量
  • 如果在不同的作用域中,你可以用相同的名字命名不同的變量

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)

3.6 global 語句

如果需要在一個函數內修改全局變量,就是用global語句

有四條法則,來區分一個變量是處于局部作用域還是全局作用域

  • 如果變量在全局作用域中使用(即在所有函數之外),它就是全局變量
  • 如果在一個函數中,有針對該變量的global語句,它就是全局變量
  • 否則,如果該變量用于函數中的賦值語句,它就是局部變量
  • 但是,如果該變量沒有用在賦值語句中,它就是全局變量

3.7 異常處理

當程序運行出錯時,可以用try和except語句來處理。那些可能出錯的語句被放在try子句中。如果錯誤發生,程序執行就轉到接下來的except子句開始處。

如果try子句中的代碼導致一個錯誤,程序執行就立即轉到except子句中的代碼,一旦執行跳到except子句的代碼中,就不會回到try的子句中了

3.8一個小程序:猜數字

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

3.9 實踐

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函數語句怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

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

AI

黑龙江省| 刚察县| 石渠县| 綦江县| 凌源市| 宜都市| 神木县| 攀枝花市| 东丰县| 沈阳市| 德清县| 织金县| 新郑市| 清水河县| 琼海市| 青河县| 静宁县| 清徐县| 靖宇县| 唐山市| 五大连池市| 逊克县| 包头市| 斗六市| 易门县| 江永县| 建德市| 武隆县| 佳木斯市| 建平县| 武功县| 横山县| 仪征市| 弥渡县| 庆云县| 澄城县| 土默特右旗| 策勒县| 庆安县| 丹巴县| 安国市|