搜尋
首頁後端開發Python教學Python零基礎入門之七變數與內建函數

1.全域變數與局部變數 
這兩個變數與其它語言中的變數一樣,全域變數簡言之就是在整個程式碼中都可以使用的變量,它的作用域是整個函數,而局部變數的作用域有限,往往就是在一塊程式碼區域。
需要值得注意的是:如果只是在函數中調用全域變數的值而不改變其值,那是完全沒有問題的,但是如果要在函數中改變全域變數的值而不進行特殊處理的話,Python語言對於這種情況的處理是會在自動產生一個與被呼叫的全域變數名稱一樣的局部變量,也就是屏蔽了全域變量,而對該變數的操作不會影響全域變數的值。 (雖然看著好像是改變了一樣) 
例如下面程序,雖然在函數中改變了count的值,但是在函數體外打印的count的值仍是5.

count=5def Myfun():
     count=10
     print(count)
Myfun()
print(count)

Python零基礎入門之七變數與內建函數

如果說非要在函數內部修改全域變數的值的話,可以在函數內部使用關鍵字global來修飾該變量,這樣就是表示該操作是對於全域變數的操作,而不是產生一個與全域變數相同的局部變數。

print("======使用global之后的变量======")
count=5def Myfun():
     global count#声明与赋值不能一块进行
     count=10
     print(count)
Myfun()
print(count)

2.內嵌(內部)函數 
簡言之,內嵌函數就是在函數內部定義的函數 
值得注意的是:內部函數的調用只能在其外部的函數調用,而在之外無法調用。也就是說,在誰的內部,誰才有權利使用。

print("======内部函数的使用======")def fun1():
     print("fun1()正在被调用")     def fun2():
          print("fun2()正在被调用")
     fun2()
fun1()

3.閉包 
閉包就是內嵌函數呼叫其外部函數的參數。 
這種函數在呼叫的時候需要格外注意。

def funX(x):
     def funY(y):
          return x*y     return funY
print(funX(5)(8))

4.閉包中的變數問題 
下面這段程式碼執行起來就會報錯。因為在內嵌函數的內部呼叫外部函數的參數,而參數x對於Fun2()這個函數來說是一個全域變量,由於屏蔽作用,造成函數出錯。

def Fun1():
     x=5
     def Fun2():
          x*=x          return x     return Fun2()#Fun1()

Python零基礎入門之七變數與內建函數

解決上述問題的方法有兩個: 
一是使用非堆疊的資料結構來解決問題 
二是使用nonlocal關鍵字來解決

#一种解决办法就是使用非栈存储,使用序列等来存储def Fun1():
     x=[5]     def Fun2():
          x[0]*=x[0]          return x[0]     return Fun2()
print(Fun1(),"\n")#在一种解决办法就是使用nonlocal关键字def Fun3():
     x=5
     def Fun4():
          nonlocal x
          x*=x          return x     return Fun4()
print(Fun3())

Python零基礎入門之七變數與內建函數

二是使用nonlocal關鍵字來解決

rrreee

二是使用nonlocal關鍵字來解決

rrreee

🎜仔細琢磨琢磨,畢竟與之前學的有些差異。 🎜🎜以上就是Python零基礎入門之七變數與內建函數的內容,更多相關內容請關注PHP中文網(www.php.cn)! 🎜🎜🎜🎜
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Numpy數組與使用數組模塊創建的數組有何不同?Numpy數組與使用數組模塊創建的數組有何不同?Apr 24, 2025 pm 03:53 PM

numpyArraysareAreBetterFornumericalialoperations andmulti-demensionaldata,而learthearrayModuleSutableforbasic,內存效率段

Numpy數組的使用與使用Python中的數組模塊陣列相比如何?Numpy數組的使用與使用Python中的數組模塊陣列相比如何?Apr 24, 2025 pm 03:49 PM

numpyArraySareAreBetterForHeAvyNumericalComputing,而lelethearRayModulesiutable-usemoblemory-connerage-inderabledsswithSimpleDatateTypes.1)NumpyArsofferVerverVerverVerverVersAtility andPerformanceForlargedForlargedAtatasetSetsAtsAndAtasEndCompleXoper.2)

CTYPES模塊與Python中的數組有何關係?CTYPES模塊與Python中的數組有何關係?Apr 24, 2025 pm 03:45 PM

ctypesallowscreatingingangandmanipulatingc-stylarraysinpython.1)usectypestoInterfacewithClibrariesForperfermance.2)createc-stylec-stylec-stylarraysfornumericalcomputations.3)passarraystocfunctions foreforfunctionsforeffortions.however.however,However,HoweverofiousofmemoryManageManiverage,Pressiveo,Pressivero

在Python的上下文中定義'數組”和'列表”。在Python的上下文中定義'數組”和'列表”。Apr 24, 2025 pm 03:41 PM

Inpython,一個“列表” isaversatile,mutableSequencethatCanholdMixedDatateTypes,而“陣列” isamorememory-sepersequeSequeSequeSequeSequeRingequiringElements.1)列表

Python列表是可變還是不變的?那Python陣列呢?Python列表是可變還是不變的?那Python陣列呢?Apr 24, 2025 pm 03:37 PM

pythonlistsandArraysareBothable.1)列表Sareflexibleandsupportereceneousdatabutarelessmory-Memory-Empefficity.2)ArraysareMoremoremoremoreMemoremorememorememorememoremorememogeneSdatabutlesserversEversementime,defteringcorcttypecrecttypececeDepeceDyusagetoagetoavoavoiDerrors。

Python vs. C:了解關鍵差異Python vs. C:了解關鍵差異Apr 21, 2025 am 12:18 AM

Python和C 各有優勢,選擇應基於項目需求。 1)Python適合快速開發和數據處理,因其簡潔語法和動態類型。 2)C 適用於高性能和系統編程,因其靜態類型和手動內存管理。

Python vs.C:您的項目選擇哪種語言?Python vs.C:您的項目選擇哪種語言?Apr 21, 2025 am 12:17 AM

選擇Python還是C 取決於項目需求:1)如果需要快速開發、數據處理和原型設計,選擇Python;2)如果需要高性能、低延遲和接近硬件的控制,選擇C 。

達到python目標:每天2小時的力量達到python目標:每天2小時的力量Apr 20, 2025 am 12:21 AM

通過每天投入2小時的Python學習,可以有效提升編程技能。 1.學習新知識:閱讀文檔或觀看教程。 2.實踐:編寫代碼和完成練習。 3.複習:鞏固所學內容。 4.項目實踐:應用所學於實際項目中。這樣的結構化學習計劃能幫助你係統掌握Python並實現職業目標。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)