導航:首頁 > 編程語言 > python關於變數的說法

python關於變數的說法

發布時間:2023-02-05 04:18:55

❶ 淺談python中的變數賦值

在python中,變數賦值的語法比較簡單,語法就是 「變數名 = 對象」,由於python屬於動態語音,所以不需要像c、 java那樣在變數賦值時需要聲明變數的類型。

c 變數賦值

int x = 1;

python 變數賦值

x = 1

y = "hello world!"

a = [1, 2]

b = ('a', 'b')

c = {"foo": "bar"}

python 變數賦值中,所涉及到的變數命名是有一定規則的:

1. 變數名只能包含字母、數字和下劃線。變數名可以字母或下劃線開頭,但不能以數字開頭,例如,可將變數命名為name_1,但不能將其命名為1_name

2. 變數名不能包含空格,但可使用下劃線來分隔其中的單詞。例如,變數名name_one可行,但變數名name one會引發錯誤。

3. 不要將Python關鍵字和函數名用作變數名,即不要使用Python保留用於特殊用途的單詞,如not、pass等。

4. 變數名應既簡短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好, 雖說簡短好,但是不能依照自己的意願隨意簡寫,盡量使用大家約定俗成的簡寫,如果不是還不如寫全拼。

5. python 變數名中大小寫敏感,所以 NAME, Name, name 代表三個不同的表裡名, 這里提一下就是慎用小寫字母l和大寫字母O,因給他們可能被人錯看成數字1和0;

再說變數賦值中賦予給變數的值,python中萬事皆對象,所以python中只要是對象就能給變數賦值。如:

    x = 1 # x賦值為數字1;

    x = sum # x賦值為內建求和函數sum;

python的賦值真實上說應該不是賦值,而更像是「引用」,如何理解「引用」呢,python中一直對象的生成是會在內存中分配給一個內存地址,這個內存地址可以使用id()方法去獲取,然後在變數賦值時,將變數直接引用該對象的內存地址,進而完成變數賦值,如:

    x = 1, 賦值時x直接引用1所在內存的地址, y = x, 此時是y直接引用x的所指向的內存地址

python中有判斷變數的方法如 is() 和 ==,二者在判斷變數時是有區別的,is函數是判斷變數的內存地址是否相同,而 == 是判斷變數的值是否相同,舉例說明:

    a = 1; b = 1.0

    a is b  # False

    a == b # True

小心python變數賦值的陷阱

    看到上面的所述知道了python變數賦值實則是引用,引用的是對象的內存地址。所賦的值可以分兩類,一類是可變的,如列表,字典,集合;一類是不可變的,如字元串、元組。所以當對象為可變類型時就會出現一種情景,我們舉例說明:

    x = [1, 2, 3]

    y = x

    print x == y    # True

    print x is y    # True

    print x     # [1, 2, 3]

    print y     # [1, 2, 3]

    y.append(4)

    print x    # [1, 2, 3, 4]

    print y    # [1, 2, 3, 4]

可以看到y在進行調整時(添加了一個元素),x也跟著變動了,這進一步說明了,python中的變數賦值時引用,x,y 賦值時指向了同一處內存地址,所以當y變動時,x同樣也發送了變化,解決這中現象的方法可以是x, y = [1,2,3], [1,2,3]這樣賦值,雖說此時 x==y 是True,但是確實是2個不同的內存地址,所以 x is y 則是 False。或者可以使用模塊,實質是相同的,創建2個不同的內存地址,使其分離。

❷ Python變數可以只定義不賦值嗎

題主你好,

答案肯定是不可以的.

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

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

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

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

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

-----

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

❸ 在python中,變數就是指針,可以這樣理解么

不是。
應該是指向指針的指針,只不過變數本身的地址在python中不提供訪問途徑。也就是只能訪問這個指針所指地址(指針)和此地址里的內容。
比如
python中 a="xyz"
a本身的地址(對應的C運算:&a)python里是沒有辦法看到的。
python的id(a),返回的是"xyz"在內存中的起始地址,而不是存儲a變數本身的地址。

❹ python的基本語法

python的基本語法如下:

一、變數的定義。

編程語言中,存儲一個數據,需要用變數進行接收。

2.標識符的命名規則。

標識符只能由字母、下劃線「_」、數字組成。

標識符不能以數字開頭。

標識符不能使用關鍵字。

標識符對大小寫敏感。

(建議:標識符命名應「見名知意」)

3.python中的關鍵字。

'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'

❺ 求Python中全局變數的詳細理解

題主你好,

拿實際例子和你說一下吧, 更好理解一些.

我們在拿到一個python腳本的時候,往往發現裡面都有如下語句:

=====

希望可以幫到題主, 歡迎追問.

❻ python中要在什麼情況下使用變數

在python中,變數是存儲在內存中的值,也就意味著使用python中的變數會開辟內存空間,python解釋器會根據變數類型去開辟不同的內存空間進行變數值的存儲,當你的程序需要存儲值內容的時候就需要用到變數。

在Python中,變數定義時不需要提前定義類型,解釋器會自動進行定義,如果需要改變數的類型則需要使用另外的函數。在使用變數的時候,不需要提前聲明,只需要給這個變數賦值即可。但是,當用變數的時候,必須要給這個變數賦值;如果只寫一個變數,而沒有賦值,那麼Python認為這個變數沒有定義。

❼ python中局部變數和全局變數的區別

全局變數:在函數外或全局空間中聲明的變數稱為全局變數,這些變數可以由程序中的任何函數訪問;
局部變數:在函數內聲明的任何變數都稱為局部變數,此變數存在局部空間中,而不是全局空間中。

❽ python中的變數與垃圾回收

python中的變數和java中的變數本質是不一樣的,python中的變數實質上是一個指針(指針的大小固定的)

is可以用來判斷id是否相等

對於這種賦值,雖然所賦值是相同的,但是他們的id不同,即他們是不同的對象,a is b 即為false ,但是有個特例: a = 1 b = 1 時他們的id相同。其實這是python內部的優化機制,對於小整數和小的字元串來說,python在前邊定義一個對象時,下次在遇到時會直接調用前邊生成的對象,而不會去重新申請一個。

他們的對象內存地址不一樣,但是,a和b里的值是相等的,這是由於a和b都為list,而list里有內置的魔法函數 eq 通過 eq 魔法函數可以判斷里邊兩個的值是否相同,若相同則返回True

python中垃圾回收的演算法回收的演算法是採用引用計數,當程序中有一個變數引用該python對象時,python會自動保證該對象引用計數為1;當程序中有兩個變數引用該python對象時,python會自動保證該對象計數器為2, 以此類推,當一個對象的引用計數器變為0 時,則說明程序中不再有變數對其進行引用,因此python就會回收該對象。

大多數情況,python的ARC都能准確,高效的回收系統中的每一個對象。但如果系統中出現循環引用時,比如a對象持有一個實例變數引用對象b,而b對象又持有一個實例變數引用對象a,此時 兩個對象的計數器都為1, 而實際上python不再需要這兩個對象,也沒有程序在引用他們,系統回收他們時python的垃圾回收器就沒有那兒快,要等到專門的循環垃圾回收器(Cyclic Garbage Collector)來檢測並回收這種引用循環

當一個對象被垃圾回收式,python就會自動調用該對象的 del 方法

當沒有注釋掉x = im時, item對象被兩個變數所引用,所以在執行完del im時並不會去回收item對象,所以先輸出--------,當程序完全執行完成後,引用item的對象的變數被釋放,然後系統便會執行 del 方法,回收item對象。

當 x = im被注釋後,只有一個變數去引用item對象,所以在執行完後程序變回去調用 del 方法,回收item對象,然後在繼續向下執行 輸出-----

閱讀全文

與python關於變數的說法相關的資料

熱點內容
關於cs的電影 瀏覽:399
index/vod/ 瀏覽:740
java開發環境搭建linux 瀏覽:742
主角收服白起鬼魂的小說 瀏覽:723
桌面少了一個文件夾不見怎麼找回 瀏覽:271
單片機連接失敗 瀏覽:302
殺破狼2結局什麼意思 瀏覽:497
看電影網址入口 瀏覽:886
天地23有哪些作品txt下載 瀏覽:599
不用付費看視頻的網站 瀏覽:628
皇宮寫肉寫的很細致的小說 瀏覽:561
征服ol怎麼轉移伺服器 瀏覽:705
恐怖電影國語 瀏覽:947
有吃乳汁電影嗎 瀏覽:888
李采潭出演的善良的女老師3 瀏覽:173
台灣影視在線免費看 瀏覽:106
支付寶跳蹬app源碼下載 瀏覽:886
倩女銷魂 紀倩倩 瀏覽:53
周星馳粵語電影 瀏覽:516
5個小時的愛情電影在線觀看 瀏覽:975