日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解Python函數(shù)

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

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供武都網(wǎng)站建設、武都做網(wǎng)站、武都網(wǎng)站設計、武都網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、武都企業(yè)網(wǎng)站模板建站服務,10年武都做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。

3.1 def語句和參數(shù)

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

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

在這個程序的hello()函數(shù)定義中,有一個名為name的變元?!白冊笔且粋€變量,當函數(shù)被調用時,參數(shù)就存放在其中。

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

3.2 返回值和return語句

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

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

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

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

3.3 None值

在python中有一個值稱為None,他表示沒有值。None是NoneType數(shù)據(jù)類型的唯一值。 print()函數(shù)在屏幕上顯示文本,但他不需要返回任何值,這就和len()和input()不同。但既然所有函數(shù)調用都需要求值為一個返回值,那么print()就返回None

>>> spam = print('hello')
hello
>>> None ==spam
True
>>>

在幕后,對于沒有return語句的函數(shù)定義,python都會在末尾加上return None。這類似于while或者fo循環(huán)隱式的以continue語句結尾。而且,如果使用帶值的return語句(也就是只有return關鍵字本身),那么就返回None。

3.4關鍵字參數(shù)和print()

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

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

3.5 局部作用域

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

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

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

3.5.1 局部變量不能在全局作用域內使用

def spam():
   eggs = 111
spam()
print(eggs)

如果運行這個程序就會出錯,eggs變量只屬于spam()調用所創(chuàng)建的局部作用域。

3.5.2 局部作用域不能使用其他局部作用內的變量

def spam():
   eggs = 99
   bacon()
   print(eggs)
   
def bacon()
   ham = 101
   eggs = 0
   
spam()

程序運行時,spam()被調用,創(chuàng)建一個局部作用域。局部變量eggs被賦值為99。然后bacon()函數(shù)被調用,創(chuàng)建第二個作用域。多個局部作用域能同時存在。在這新的局部作用域中,局部變量ham也被創(chuàng)建被賦值為101。局部變量eggs也被創(chuàng)建并賦值為0。 當bacon()返回時,這次調用的局部作用域被銷毀。程序執(zhí)行在spam()函數(shù)中繼續(xù),打印出eggs的值。這次spam()調用的局部作用域任然存在,eggs被賦值為99.

3.5.3 全局變量可以在局部作用域中讀取

def spam():
   print(eggs)
eggs = 42
spam()
print(eggs)

3.6 global 語句

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

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

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

3.7 異常處理

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

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

3.8一個小程序:猜數(shù)字

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:
       break
if 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()的函數(shù),它有一個名為 number的參數(shù)。如果參數(shù)是偶數(shù),那么 collatz()就打印出 number // 2,并返回該值。如果 number是奇數(shù),collatz()就打印并返回 3 * number + 1。

然后編寫一個程序,讓用戶輸入一個整數(shù),并不斷對這個數(shù)調用collatz(),直到函數(shù)返回值1(令人驚奇的是,這個序列對于任何整數(shù)都有效,利用這個序列, 你遲早會得到 1!既使數(shù)學家也不能確定為什么。你的程序在研究所謂的“Collatz 序列”,它有時候被稱為“最簡單的、不可能的數(shù)學問題”)。

在前面的項目中添加 try 和 except 語句,檢測用戶是否輸入了一個非整數(shù)的字符串。正常情況下,int()函數(shù)在傳入一個非整數(shù)字符串時,會產(chǎn)生 ValueError 錯誤,比如 int(‘puppy’)。在 except子句中,向用戶輸出一條信息,告訴他們必須輸入一個整數(shù)。

示例代碼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 numbers


print('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函數(shù)
當前URL:http://www.dlmjj.cn/article/ccscgdc.html