在兩種python回圈陳述句的使用中,不僅僅是回圈條件達到才能跳出回圈體,所以,在對python函式進行闡述之前,先對跳出回圈的簡單陳述句塊進行介紹,
1 跳出回圈-break
python提供了一種方便快捷的跳出回圈的方法-break,示例如下,計算未知數字個數的總和:
if __name__ == "__main__":
sum = 0
while True:
num = str(input('輸入的數字 (或者 "完成"): '))
if num == '完成':
break #跳出回圈
sum = num
sum = sum + num
print('計算總和為:' + str(sum))
這段代碼中,while的回圈條件為True,這也就表示這段代碼將會永遠回圈下去,直到 break 被執行時才會結束,也就是 num 的值為"完成"時解說,對比之前單單使用while回圈,少了重復的 input 陳述句,但如果使用許多 break 也會使得代碼難以理解,所以在使用時需要視情況而定,該段代碼執行結果如下:依照開發經驗來看,除非 break 的使用使代碼更加簡潔清晰,一般不會使用該陳述句,當然,跳出回圈的方法還有類似自定義例外、封裝回圈函式(多使用return)等方法,但對這些的使用一般建立在使用多了之后,在此不做過多的闡述,后面會隨著對python的深入使用進行舉例,

另外,continue 與 break 是相關的,當在回圈體中使用continue時,就會跳轉到回圈條件中,進入下一次回圈,
if __name__ == "__main__":
for i in range(3):
for j in range(3):
for k in range(3):
if i == j == k == 2:
break
else:
print(str(i) + " " + str(j) + " " + str(k))
else:
continue
break
else:
continue
break

這段代碼可以簡單的理解為排列組合除了i=j=k=2之外的所有情況,但也不會輸入任意i=j=k=3的組合,這是因為代碼邏輯中包含continue和break的,這么看的話是不是有些不太好理解,所以在開發中一般不要這么使用,
2 python函式
函式,在每一種開發語言的使用中都是十分重要的,它是代碼塊,可以輸入輸出,實作需要的功能呼叫,可以大量進行復用,我們正在使用的python已經擁有了龐大數量的功能函式,這方便了我們的學習、開發、資料分析等使用,在Python的函式中,我們將其分為內置函式、自定義函式、main函式三個模塊,當然,使用的程序中會涉及到變數以及引數,這些都會舉例進行說明,
2.1 內置函式
在之前的闡述中,我們一直使用的就是python提供的強大的內置函式(Python強大的語法支持)作為示例,本次以pow()函式為例,計算3 的3次方:
>>> pow(3,3)
27
內置函式pow()函式中,pow為函式名,兩個3是傳遞給函式的引數,結果27為回傳值,如下圖:

上圖概述了內置函式的呼叫,當我們在使用python呼叫函式時,會將函式呼叫替換成為回傳值,在基本的函式運算中,我們會注意到pow(3,3)的回傳值與3**3的回傳值是一樣的,也就是二者可以說是等價的關系,細節的朋友們會發現,在python中,pow(0,0) 的值為1,同樣,0**0=1,當然,這在實際開發中幾乎不會用到,只是再次強調python函式的全面和強大!
在實際使用中,我們會發現并不是所有函式都有回傳值,有些情況是沒有回傳值的,下面我們舉一個簡單的例子,如下:在a有賦值的時候回傳值是正常的,但是在未給a賦值時,其回傳值是一個None,既不是字串,也不是數字,意義就是告訴你這段代碼沒有任何回傳值,需要自查BUG,(這里比較隨意,在linux環境中進行的示例)

在使用函式時,注意不要讓自己的函式與內置函式相同,避免無意間讓內置函式指向其它函式或者函式值,即便你使用了,python并不會提示你這個錯誤,

這里我們讓pow指向了數字520,后面我們再次使用使用pow()時會出現上圖所顯示的錯誤,所以為了避免這種情況,需避開名字相同的命名方式哦,但遇到了的話需要重新進入python環境后,修改函式名,再次執行
2.2 自定義函式
自定義函式功能是程式員在使用中經常會用到的,因為通常會根據具體需求實作某個邏輯的功能,舉一個簡單的例子,實作一個計算面積的函式:
import math
def round_area(x):
return math.pi * x ** 2
if __name__ == "__main__":
x = int(input())
area = round_area(x)
print("半徑為" + str(x) +"cm的圓的面積為:"+ str(area))

對于自定義函式的使用,一般將這個功能函式保存在Python檔案中,例如我們保存為practice2.py,在使用時只需呼叫round_area函式名,并且傳入引數x(對于自定義函式中的引數可有可無,根據自己的需求使用),可以向使用其他內置函式一樣呼叫round_area(),差別就是你對于自定義的函式擁有絕對的控制權(任意修改),
由上面的例子可以看出,自定義函式包含幾個規則:
1.函式以def(函式頭)關鍵詞開頭,后接函式識別符號名稱和圓括號();
2.任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用于定義引數;
3.函式內容以冒號起始,并且縮進;
4.return [運算式] 結束函式,選擇性地回傳一個值給呼叫方,不帶運算式的return相當于回傳 None;
函式頭后面是可選的檔案字串,檔案字串簡要地描繪了函式的功能,可能包含示例和其他有益的資訊,雖然檔案字串是可選的,但需要使用合理的命名: 當你撰寫大量函式時,很容易忘記它們的功能和作業原理,而寫得好的檔案字串可很好的讓你使用,
檔案字串后面是函式體,這是一個縮進的代碼塊,完成了需要的作業,在這個代碼塊中,可使用函式頭中的變數,
本實體中使用了return作為關鍵詞回傳一個值,當其執行時,Python 跳出函式,并回傳到呼叫這個函式的地方, 在自定義函式時, return 陳述句通常是函式中最后被執行的代碼,但并非是必須,
import math
def round_area_1(x):
print(math.pi * x ** 2)
if __name__ == "__main__":
x = int(input())
area = round_area_1(x)
print("半徑為" + str(x) +"cm的圓的面積為:"+ str(area))
執行結果如下:可以看到有面積結果的輸出,但是最后卻輸出了一個None值,None 用于指出函式不回傳值,這是一個自定義函式不使用return陳述句帶來的副作用,但Python為消除此副作用提供了強大的支持(此處不做闡述,先體驗return式自定義函式), 包含在函式中定義函式以及將函式作為值傳遞給其他函式,

2.3 main函式
如果你對多種語言都有所了解,那么必定知道main函式是一種十分普遍且必須使用的,如Java、C、C++等,Python同樣如此,當我們在撰寫python程式時,至少應該使用一個main函式,例如在Python流程控制中的示例:
if __name__ == "__main__":
while True:
scan_user = input('please input your name: ')
scan_pass = input('please input your passwd: ')
if scan_pass == 'if/else':
print('Logging on now!')
else:
print('your passwd is incorrect!!')
print('我不在if/else陳述句中!')
可以改成如下,這樣所有代碼均位于函式頭main后面,且進行了縮進,在編輯器中運行已寫好的 *.py 檔案是,必須輸入main() 進入代碼,開始執行,其優點在于:可以傳參,更簡單的運行整個程式,
def main():
scan_user = input('please input your name: ')
scan_pass = input('please input your passwd: ')
if scan_pass == 'if/else':
print('Logging on now!')
else:
print('your passwd is incorrect!!')
print('我不在if/else陳述句中!')
有函式的使用,就會涉及到變數和引數以及模塊,對于這三個的使用,會在下篇文章中進行闡述,請有興趣的朋友先好好體會要python函式的使用,
Python強大的語法支持_滌生手記大資料-CSDN博客
流程控制之python_滌生手記大資料-CSDN博客
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/374784.html
標籤:python
