久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

零基礎Python教程-函數及模塊的使用


今天和大家分享一下零基礎Python教程中的-函數及模塊的運用,在學習本節內容之前,我們先來一起做道數學題。已知:半徑分別為0.1、0.2、0.3的三個圓,分別求這三個圓的面積。很多讀者可能要笑一下,這不是小學的數學問題嗎?

?函數

 
S = π * r * r
# 那么
S1 = π * 0.1 * 0.1
S1 = π * 0.2 * 0.2
S1 = π * 0.3 * 0.3
在上面的表達式中,我們做了3次求圓的面積,這樣的代碼實際上就是重復代碼。
對于上面的表達式,我們可以將面積公式封裝到函數中。在需要計算面積的時候,調用函數即可。
在Python中可以使用def關鍵字來定義函數,和變量一樣每個函數也有一個名字,而且命名規則跟變量的命名規則是一致的。
在Python中,定義一個函數要使用def語句,依次寫出函數名、括號、括號中的參數和冒號,然后,在縮進塊中編寫函數體,函數的返回值用return語句返回。
在了解函數的定義及作用之后,我們對上述代碼進行重構。重構就是在不影響代碼執行結果的前提下對代碼的結構進行調整。
 def circle_area(r):
S = 3.14 * r * r print('%.4f' %S)
circle_area(0.1)
circle_area(0.2)
circle_area(0.3)

很多編程語言都支持函數,但是Python對函數處理與其他編程語言有一個顯著的區別就是:Python支持函數的參數設有默認值。

例如:我們寫一個計算x*x的函數。

def power(x): 
return x * x

當我們調用power函數時,必須傳入有且僅有的一個參數x。

那么問題來了,如果我們要計算x*x*x怎么辦?你可能會說我們再定義一個新的函數計算。那要是需要計算x*x*x*x又該怎么辦呢?我們不能無限的定義新函數。

這個時候,相信聰明的你已經想到了。我們可以將power(x)重新定義為power(x,n)。用來計算x的n次方。

def power(x, n):
s = 1
while n > 0:
= n - 1 s = s * x return s
power(2,5)

這樣我們就可以計算任意n次方。

但是此時我們調用舊函數就會報錯,原因是我們增加了一個參數,導致舊的代碼因為缺少一個參數而無法正常調用:

這個時候,Python的默認參數就派上用場了。

def power(x, n=2):
s = 1
while n > 0:
= n - 1
s = s * x
return s

這樣,當我們調用power(5)時,相當于調用power(5, 2)。

注意:

一是必選參數在前,默認參數在后,否則Python的解釋器會報錯(思考一下為什么默認參數不能放在必選參數前面)

二是如何設置默認參數。

當函數有多個參數時,把變化大的參數放前面,變化小的參數放后面。變化小的參數就可以作為默認參數。

使用默認參數有什么好處?最大的好處是能降低調用函數的難度。

模塊

相信很多朋友在給函數、變量命名時都非常糾結。至少我本人是這樣的。因為Python沒有函數重載的概念,那么我們在一個.py文件中命名了兩個同名函數應該怎么辦呢?例如:

def test():
print("Good")
def test():
print("Bad")test()

我們如何解決這種問題呢?Python引入了模塊的概念。我們可以將這兩個函數分別寫到不同的文件中,通過import關鍵字進行導入從而引用。

# good.py 
def test():
print("Good")
# bad.py
def test():
print("Bad")

當我們想要使用test()函數時,可以如下:

from good import test
# 輸出Good
test()
#輸出Bad
from bad import test
test()

但是,下面這種情況,程序會調用最后一個模塊的函數:

from good import test

from bad import test

test()

需要說明的是,如果我們導入的模塊除了定義函數之外還中有可以執行代碼,那么Python解釋器在導入這個模塊時就會執行這些代碼,事實上我們可能并不希望如此,因此如果我們在模塊中編寫了執行代碼,最好是將這些執行代碼放入如下所示的條件中,這樣的話除非直接運行該模塊,if條件下的這些代碼是不會執行的,因為只有直接執行的模塊的名字才是“\_\_main\_\_”。

通俗的理解就是:當你的腳本文件是被直接運行的時候,則if__name__=='__main__'后的可執行代碼就會執行,如果你的代碼是被導入的,那么就不會直接運行之后的代碼。

好了,今天的分享到這里就結束了,希望大家可以持續關注馬哥教育官網,每天都會有大量優質的文章與大家分享歐!免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 中山市| 星子县| 蛟河市| 遵义县| 荣昌县| 鞍山市| 广丰县| 青岛市| 神农架林区| 仙居县| 新平| 越西县| 连云港市| 蒙城县| 肇源县| 普兰县| 容城县| 邹平县| 喜德县| 改则县| 车险| 芮城县| 湖口县| 东阿县| 义马市| 黄冈市| 哈尔滨市| 女性| 林周县| 景谷| 永福县| 峡江县| 甘谷县| 佛山市| 顺平县| 荥阳市| 长寿区| 化德县| 休宁县| 宜春市| 松江区|