Python常量與變量的終極指南:從基礎到進階的15個要點

今天,我們將一起揭開Python中最基本但也極其重要的概念——常量與變量的神秘面紗。別擔心,我會用最簡單直白的語言,讓你從入門到略有小成,一步步掌握這些核心知識。準備好你的筆記本,讓我們開始這場Python之旅吧!

1. 常量:不變的真理

在Python中,常量是指那些一旦被賦值后就不再改變的值。雖然Python沒有嚴格意義上的常量關鍵字,但習慣上我們用大寫字母表示常量,比如 PI = 3.14159。記住,這更多是一種約定,而不是強制。

# 示例:定義一個常量  
PI = 3.14159  

2. 變量:靈活的存儲空間

變量則是存儲數據的容器,它的值可以改變。命名變量時,要保持簡潔且描述性強,比如用 student_name 而不是 sn

# 示例:定義并改變變量的值  
student_name = "Alice"  
print(student_name)  
student_name = "Bob"  # 變量值可以改變  
print(student_name)  

3. 數據類型:了解你的存儲對象

Python有多種數據類型,如整型(int)、浮點型(float)、字符串(str)和布爾型(bool)。知道這些類型能幫助你更好地管理變量。

age = 25  # 整型  
height = 1.78  # 浮點型  
greeting = "Hello, World!"  # 字符串  
is_student = True  # 布爾型  

4. 變量賦值的魔法:多重賦值

Python允許你一次性給多個變量賦相同的值,或者同時給多個變量賦不同的值。

x, y, z = 1, 2, 3  # 同時賦不同值  
a = b = c = 42  # 同一值賦給多個變量  

5. 類型轉換:讓數據流動起來

有時你需要將一種類型的數據轉換為另一種類型,這可以通過類型轉換函數實現,如 int(), float(), str()

age_str = "25"  
age_int = int(age_str)  # 將字符串轉換為整數  

6. 靜態類型與動態類型:Python的靈活性

Python是動態類型語言,這意味著你在聲明變量時不需要指定類型,它會自動推斷。相比Java等靜態類型語言,這提供了很大的便利性。

7. 全局變量與局部變量

在函數內部定義的變量是局部變量,只在該函數內部有效。全局變量則在整個文件范圍內有效,但如果你想在函數內部修改全局變量,需要使用 global 關鍵字。

# 全局變量  
total = 0  def add_to_total(value):  global total  total += value  add_to_total(10)  
print(total)  # 輸出:10  

8. 變量作用域:哪里能訪問我?

理解變量的作用域對于避免錯誤至關重要。局部變量在函數內定義,只能在該函數內訪問;而全局變量可以在整個腳本中訪問。

9. 不可變與可變對象:深淺拷貝的秘密

字符串和數字是不可變對象,一旦創建就不能改變其值。列表和字典是可變對象,可以修改它們的內容。這在處理數據時尤為重要。

10. 隱式類型轉換:小心的驚喜

Python在某些操作中會自動進行類型轉換,比如加法操作,但這可能帶來預期之外的結果,所以要小心。

print("10" + str(20))  # 結果:"1020"  

11. 空值:None的含義

None 是Python中的一個特殊類型,表示沒有值或空狀態,常用于初始化變量或函數返回值。

result = None  

12. 變量命名規范:讓代碼自解釋

遵循駝峰命名法或下劃線命名法,避免使用Python關鍵字作為變量名,這樣可以提高代碼的可讀性。

13. 實戰案例:變量的應用

假設我們要編寫一個簡單的程序來計算一個人的年齡到100歲還需要多少年。

current_age = 25  
age_to_reach = 100  
years_left = age_to_reach - current_age  
print(f"You have {years_left} years until you reach 100.")  

14. 練習技巧:動手實踐

  • 練習1:編寫一個程序,詢問用戶的名字和年齡,然后計算并顯示他們將在哪一年達到100歲。

  • 練習2:理解并演示變量作用域,創建一個函數,在不使用 global 關鍵字的情況下,嘗試改變一個全局變量的值,觀察結果。

15. 注意事項:避免常見的陷阱

  • 在給變量賦值前確保它沒有被定義為其他類型的值,尤其是當涉及數字和字符串操作時。

  • 注意不要過度使用全局變量,以減少潛在的命名沖突和代碼的維護難度。


接下來讓我們探索一些高級概念和實用技巧,這將幫助你更加熟練地運用這些基礎知識。

16. 變量的生命周期

變量的生命周期是從它被定義時開始,到程序執行結束或者變量被重新賦值覆蓋時結束。理解這一點對于優化內存使用至關重要。

17. 使用del刪除變量

當你不再需要某個變量時,可以使用del語句刪除它,釋放相關內存。

my_var = "Hello"  
print(my_var)  # 輸出: Hello  
del my_var  
print(my_var)  # 這里會引發NameError,因為變量已被刪除  

18. 變量與引用:深入了解對象

在Python中,復雜數據類型(如列表、字典)的變量實際上是對象的引用。這意味著當你“賦值”給另一個變量時,你實際上是在共享這個對象的引用,而非復制其內容。

list1 = [1, 2, 3]  
list2 = list1  
list2.append(4)  
print(list1)  # 輸出: [1, 2, 3, 4],說明list1和list2指向同一個列表對象  

19. 深拷貝與淺拷貝

為了真正復制一個復雜對象而不共享引用,可以使用深拷貝。Python標準庫中的copy模塊提供了這一功能。

import copy  
list1 = [1, 2, [3, 4]]  
list2 = copy.deepcopy(list1)  
list2[2][0] = 5  
print(list1)  # 輸出: [1, 2, [3, 4]],說明深拷貝后的修改不會影響原列表  

20. 性能考慮:變量使用效率

雖然Python自動管理內存,但在處理大量數據時,明智地使用變量和數據結構可以顯著影響程序的性能。例如,盡量減少全局變量的使用,避免不必要的數據復制。

結語

掌握了這些關于常量與變量的高級概念,你就擁有了更強大的工具來構建復雜的Python程序。

好了,今天的分享就到這里了,我們下期見。歡迎大家留言討論任何技術及相關問題_如果本文對你有幫助,請點贊、轉發、點個在看吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40799.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40799.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40799.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在Linux環境下搭建Redis服務結合內網穿透實現通過GUI工具遠程管理數據庫

文章目錄 前言1. 安裝Docker步驟2. 使用docker拉取redis鏡像3. 啟動redis容器4. 本地連接測試4.1 安裝redis圖形化界面工具4.2 使用RDM連接測試 5. 公網遠程訪問本地redis5.1 內網穿透工具安裝5.2 創建遠程連接公網地址5.3 使用固定TCP地址遠程訪問 前言 本文主要介紹如何在Li…

mysql 9 新特新

mysql9新特性 新特性Audit Log NotesC API NotesCharacter Set SupportCompilation NotesComponent NotesConfiguration NotesData Dictionary NotesData Type NotesDeprecation and Removal NotesEvent Scheduler NotesJavaScript ProgramsOptimizer NotesPerformance Schema …

Spring中的事件監聽器使用學習

一、什么是Spring中的事件監聽機制? Spring框架中的事件監聽機制是一種設計模式,它允許你定義和觸發事件,同時允許其他組件監聽這些事件并在事件發生時作出響應。這種機制基于觀察者模式,提供了一種松耦合的方式來實現組件間的通信…

Linux 系統性能分析與故障排查:從入門到進階

Linux 系統性能分析與故障排查:從入門到進階 作為系統管理員或 IT 專業人員,掌握系統性能分析和故障排查技能至關重要。這些技能可以幫助你識別和解決系統性能問題,確保系統穩定運行。本文將介紹系統性能分析和故障排查的基本方法&#xff0…

CTF實戰:從入門到提升

CTF實戰:從入門到提升 🚀前言 沒有網絡安全就沒有國家安全,網絡安全不僅關系到國家整體信息安全,也關系到民生安全。近年來,隨著全國各行各業信息化的發展,網絡與信息安全得到了進一步重視,越…

XAML 框架橫向對比

多年來,基于 XAML 的 UI 框架有了很大的發展。下面的圖表很好地證明了這個觀點。XAML UI 框架的三大巨頭:Avalonia UI、Uno Platform 和 .NET MAUI 都支持跨平臺的應用。事實上,除了 Avalonia UI,對跨平臺 XAML 的需求是它們發展的…

【深度學習】圖形模型基礎(5):線性回歸模型第四部分:預測與貝葉斯推斷

1.引言 貝葉斯推斷超越了傳統估計方法,它包含三個關鍵步驟:結合數據和模型形成后驗分布,通過模擬傳播不確定性,以及利用先驗分布整合額外信息。本文將通過實際案例闡釋這些步驟,展示它們在預測和推斷中的挑戰和應用。…

Unity 使用AVProMovieCapture實現Game視圖屏幕錄制

內容將會持續更新,有錯誤的地方歡迎指正,謝謝! Unity 使用AVProMovieCapture實現Game視圖屏幕錄制 TechX 堅持將創新的科技帶給世界! 擁有更好的學習體驗 —— 不斷努力,不斷進步,不斷探索 TechX —— 心探索、心…

【云計算】公有云、私有云、混合云、社區云、多云

公有云、私有云、混合云、社區云、多云 1.云計算的形態1.1 公有云1.2 私有云1.3 混合云1.4 社區云1.5 多云1.5.1 多云和混合云之間的關系1.5.2 多云的用途1.5.3 影子 IT 和多云1.5.4 優缺點 2.不同云形態的對比 1.云計算的形態 張三??在家做飯吃,這是 私有云&…

liunx上修改Firefox版本號

在Linux上修改Firefox的版本號并不直接推薦也不鼓勵,因為這可能會影響到瀏覽器的安全性、兼容性和自動更新功能。但如果你因為某些特殊測試場景確實需要修改其顯示的版本號(請注意,這樣做可能會引發不可預料的問題),可…

【擴散模型】LCM LoRA:一個通用的Stable Diffusion加速模塊

潛在一致性模型:[2310.04378] Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference (arxiv.org) 原文:Paper page - Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference (…

ELK優化之Filebeat部署

目錄 1.安裝配置Nginx 2.安裝 Filebeat 3.設置 filebeat 的主配置文件 4.修改Logstash配置 5.啟動配置 6.kibana驗證 主機名ip地址主要軟件es01192.168.9.114ElasticSearches02192.168.9.115ElasticSearches03192.168.9.116ElasticSearch、Kibananginx01192.168.9.113ng…

【鎖】各種鎖的概念

解釋一下什么是樂觀鎖、悲觀鎖、自旋鎖、互斥鎖、讀寫鎖、排他鎖、共享鎖、統一鎖、分段鎖? 定義角度不同,通常把(樂觀鎖、悲觀鎖)、(自旋鎖、互斥鎖)、(讀寫鎖、排他鎖、共享鎖)、…

Redis---9---集群(cluster)

將新增的6387節點(空槽號)作為master節點加入原集群 Redis—9—集群(cluster) 是什么 定義 ? 由于數據量過大,單個Master復制集難以承擔,因此需要對多個復制集進行集群,形成水平擴展每個復…

Selenium 切換窗口

環境: Python 3.8 selenium3.141.0 urllib31.26.19說明: driver.current_window_handle # 返回當前窗口的句柄 driver.window_handles # 返回當前由driver啟動所有窗口句柄,是個列表 driver.switch_to.window(handle) # 根據 handle 切換窗口…

5個實用的文章生成器,高效輸出優質文章

在自媒體時代,優質內容的持續輸出是吸引讀者、提升影響力的關鍵。然而,對于許多自媒體創作者來說,頻繁的創作難免會遭遇靈感枯竭、創作不出文章的困擾。此時,文章生成器便成為了得力的助手。文章生成器的優勢能夠快速自動生成高質…

代碼隨想錄算法訓練營第13天|二叉樹的遞歸遍歷、二叉樹的迭代遍歷、二叉樹的統一迭代法、102.二叉樹的層序遍歷

打卡Day13 1.理論基礎2.二叉樹的遞歸遍歷3.二叉樹的迭代遍歷3.二叉樹的統一迭代法4.102.二叉樹的層序遍歷擴展107. 二叉樹的層序遍歷 II199.二叉樹的右視圖637.二叉樹的層平均值429.N叉樹的層序遍歷515.在每個樹行中找最大值116.填充每個節點的下一個右側節點指針117. 填充每個…

如何保證接口冪等性

如何保證接口冪等性 1、冪等性是什么? 接口冪等性是指用戶對于同一操作發起的一次請求或者多次請求的結果是一致的,不會因為多次點擊而產生了不同的結果。 2、使用冪等性的場景有哪些? 頁面點擊保存按鈕時,不小心快速點了兩次…

Python面試題-6

1. 請解釋Python中的動態類型。 Python中的動態類型 Python是一種動態類型語言,這意味著你不需要在編程時聲明變量的類型,而是在運行時自動推斷類型。在Python中,變量的類型是在程序運行時決定的,這意味著同一個變量可以在不改變…

上萬組風電,光伏,用戶負荷數據分享

上萬組風電,光伏,用戶負荷數據分享 可用于風光負荷預測等研究 獲取鏈接🔗 https://pan.baidu.com/s/1izpymx6R3Y8JsFdx42rL0A 提取碼:381i 獲取鏈接🔗 https://pan.baidu.com/s/1izpymx6R3Y8JsFdx42rL0A 提取…