python變量的關聯(python同一個類中調用變量)

本文目錄一覽:

python變量與地址的關係

在C語言中,系統會為每個變量分配內存空間,當改變變量的值時,改變的是內存空間中的值,變量的地址是不改變的。

而在python中,Python採用的是基於值的管理方式。當給變量賦值時,系統會為這個值分配內存空間,然後讓這個變量指向這個值;當改變變量的值時,系統會為這個新的值分配另一個內存空間,然後還是讓這個變量指向這個新值。

這時,如果沒有任何變量指向內存空間的某個值,這個值稱為垃圾數據,系統會自動將其刪除,回收它佔用的內存空間。

例如:

x=12

x=3.1415926

變量x在指向3.1415926後,數值12就變成了垃圾數據。也可以使用del 命令 刪除變量,但是刪除之後就不能再使用了。否則會報錯:變量沒有定義。

也就是說,C語言中變量變的是內存空間中的值,不變的是地址;而在Python中,變量變的是地址,不變的是內存空間中的值。

python中查看變量地址可用:id(變量名)

python中變量定義的問題

要知道一個對象與變量名的關係。在python中變量名與對象是不同的東西。一般來說,通過賦值語句會生成一個對象,但這個對象一般不能直接使用,需要通過一個引用來使用它,即給它一個名字。也就是等號左邊是一個變量名,右邊是生成對象的代碼,因此在執行這條賦值語句後就存在了兩個東西,一個是名字,一個是對象。在Python中把名字與變量關聯起來叫綁定。因此在後面你如果繼續對同一個變量名賦值的話,其實是實現了對變量名與新對象的重新綁定,在Python中這是允許的,原來綁定的對象如果無人再使用就自動回收,否則就將引用計數減一。而這個對象是無法改變類型了。因此你上面的a是變量名,後面才是對象的定義。不知道你是否理解。

Python變量可以只定義不賦值嗎?

題主你好,

答案肯定是不可以的.

我在官方文檔上找了一段話,希望對你的理解有幫助:

先看第二個紅框,說的是:

如果使用一個未被定義的變量, 解釋器會報錯.

關鍵是括號中粉底的那三個詞assigned a value,用來解釋python中怎麼才叫定義一個變量,也就是說你想定義一個變量必須要給它賦值,只有給一個名稱賦了值,才叫定義了一個變量. //有的語言中, 可以使用某個關鍵字先聲明一個變量, 而賦值的操作可以後面做; 還有的語言,你可以只聲明變量而不賦值, 後面使用該未賦值的變量時, 解釋器會根據你聲明的類型賦一個默認值,等等;  也就是說不同語言對變量的處理邏輯可能不同.而 python對變量的處理邏輯就是: 定義和賦值二者綁在一塊了, 即賦值的過程同時完成了”定義+賦值”, 不存在”只定義”這個過程.

而python中變量的賦值在第一個紅框中也說明了,就是 使用等號連接變量和值, 左邊變量右邊值.

—–

希望可以幫到題主, 歡迎追問, 如果有啥錯誤歡迎指正.

Python入門編程(1)變量

在開始本次的學習之前,我們先運行一下Test1.py。程序輸出了 helloworld ,下面我們再進行一些更深入的思考,當這個文件被運行時,Python都做了些什麼。

Test1.py

在運行這個文件時,它的 .py 後綴說明這是一個Python程序,因此 編譯器 會使用 Python解釋器 來運行它。接着解釋器會讀取整個程序,並且確認其中每個單詞的含義。比如在這個程序中解釋器遇到了 print() 這個單詞,它便會把括號內的內容打印出來,而不管括號裏面是什麼。

在你編寫程序時,編譯器在會把程序中每個不同的不同用不同的顏色顯示。比如 :

print (” helloworld “)

這種非常實用的方法叫做 語法突出 。

以上這些內容只是需要進行理解即可,接下來的內容我們便需要認真學習了。

讓我們對 Test1.py 稍加修改,在這個程序中加入一個變量 sentence , 並且對print函數內的內容稍加修改,以便於讓我們更好的認識變量。

通過這個程序的運行結果我們可見,修改之後的程序與先前的程序輸出相同。在這裡我們添加了一個名為 sentence 的變量,可知:

每個變量都儲存了一個對應的值,這個值就是與變量相關聯的信息。

現在我們對這個程序再加一點點的修改:

此時可以看出,同一個變量進行了兩次不同的輸出,這便是:

你可以隨時在程序中修改變量的值,並且Python將變量的最新值記錄下來。

程序員幾乎每天都會犯錯,下面這是一種我們初學階段很有可能反的錯誤,下面我們來了解並學習如何解決它。

我們來看看這個新的程序。

Test2.py

在程序出現錯誤時,編譯器無法對其進行下一步編譯,此時編譯器便會返回給我們一個 Traceback 。其是一條記錄,它會解釋器在運行代碼時在哪裡陷入困境,以上我提供的便是變量名拼寫錯誤所被提供的 Traceback 。

編譯器已經指出,在我運行Test2.py這個程序時,我們想輸出的變量 sentece 並未被定義,程序無法找到識別我所提供的變量名。

名稱錯誤的兩種情況:1.在使用變量前未給變量賦值。2.變量名拼寫錯誤。

在我這個提供的例子中,我們只需要將 sentece 修改為 sentence 便可以使程序正確運行了。

在創建程序中的變量名和編寫代碼時不必遵循英語的語法與拼寫規則。

其實絕大多數的報錯無非是在程序的某一行多寫或少寫一個字符,或是一些邏輯性的錯誤。在閱讀Traceback以及尋找解決這些Bug的方法時我們應當 耐心 和 冷靜 。這樣會提升你解決問題的速度。

本次的文章對變量進行了初步的認識與學習,在接下來的文章中,我們將對更多Python中的相關知識進行闡述與學習。

本次的文章就先寫到這裡,下次我們將會進行對 數據類型 的學習。

Python:Python 中的變量到底是什麼

— 用標識符命名的存儲單元的地址稱為變量;

— 變量是用來存儲數據的,通過標識符可以獲取變量的值,也可以對變量進行賦值;

— 通過上面的示例我們發現,我們將 a 賦值給 b 以後,對 b 的 append 操作直接影響了 a,導致 a 也跟着 append 一個 4 元素;

— 這從側面說明 a 和 b 兩個變量指向同一塊內存區域。

python中變量的引用、可變和不可變類型、局部變量和全局變量

變量的引用

變量和數據都是保存在內存中的

變量和數據是分開存儲的

數據保存在內存中某個位置,通過地址來標記

變量保存的是數據的地址,通過地址可以找到數據在內存空間的位置

把變量保存數據地址的過程稱為引用

變量的重新賦值修改的是變量中引用數據的內存地址

變量之間的賦值實際是引用的傳遞

函數參數的傳遞,本質也是引用的傳遞

函數的返回值本身也是引用的傳遞

可變和不可變類型

不可變類型,內存中的數據不允許被修改:數字類型(int,bool,float,complex,long(2,x)、字符串、元組(tuple)

可變類型,內存中的數據可以被修改:列表list、字典dict

無論是可變還是不可變數據類型,通過賦值語句,都會改變變量的引用

Hash函數只能接收不可變數據類型,字典的鍵也只能是不可變數據類型,字典的value值可以是任意數據類型

局部變量

1.在函數內部定義的變量就是局部變量(作用範圍只能是當前函數內部)

2.在函數外部無法直接訪問局部變量

3.不同的函數中可以定義同名的局部變量

4.局部變量的生命周期:從定義變量時開始,到函數運行結束

全局變量

1.在所有函數外邊定義的變量就是全局變量

2.讓所有函數都能訪問到,可以作為函數通信的橋樑

3.一般情況下,為了和普通變量的區別,需要加上g_或gl_前綴

4.全局變量一般放在所有函數的最上面

5.在函數內部修改全局變量,必須要加上global關鍵字,如果不加global只是定義了一個同名的局部變量

函數的多個返回值

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/159204.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 19:00
下一篇 2024-11-20 00:14

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論