Python基礎(1):基本規則及賦值


Python有如下的基本規則:   #后表示注釋   \n是行分隔符   \是繼續上一行,將過長語句分開   ;分號將兩個語句連接在一行中   :冒號將代碼頭和體分開   代碼塊用縮進塊的方式體現   不同縮進深度分隔不同的代碼塊   Python文件用模塊的形式組織

縮進推薦風格,縮進四個空格寬度,避免使用制表符。

 

賦值語句 Python中,主要賦值運算符是等號( = ) 賦值不是直接將一個值賦給一個變量,對象是通過引用傳遞的。不管變量是新創建的還是已經存在的,都是將該對象的引用賦值給變量。

C語言中,賦值語句可以當成一個表達式,可以返回值。但在Python中,賦值語句不會返回值。這使得這樣的語句是非法的

復制代碼
>>> y = (x = x + 1) # assignments not expressions! File "<stdin>", line 1 y = (x = x + 1) ^ SyntaxError: invalid syntax >>> if (a = 3): SyntaxError: invalid syntax
復制代碼

這就避免了判斷語句中,將 == 符號誤寫成 = 的問題。是一個很好的功能。

同樣的Python中鏈式賦值並沒有問題。

復制代碼
>>> y = (x = x + 1) # assignments not expressions! File "<stdin>", line 1 y = (x = x + 1) ^ SyntaxError: invalid syntax >>> if (a = 3): SyntaxError: invalid syntax
復制代碼

同時還有增量賦值符

+=   -=   *=   /=   %=   **=
<<=  >>=   &=   ^=   |=

相對於普通賦值不僅僅是寫法改變,最有意義的變化是第一個對象僅被處理一次。 Python不支持x++或--x這樣的前置/后置自增/自減運算 多元賦值

復制代碼
>>> x, y, z = 1, 2, 'a string' >>> x 1 >>> y 2 >>> z 'a string' >>> x, y, z (1, 2, 'a string')
復制代碼

賦值時將等號兩邊的對象都看成元組

使用多元賦值的方法可以不使用中間變量直接交換表量的值

>>> x , y = 1, 2
>>> x, y
(1, 2) >>> x, y = y, x >>> x, y (2, 1)

 

專用下划線標識符

  _xxx 不用'from module import *'導入   __xxx__系統定義名字   __xxx  類中私有變量名

風格提示: 避免用下划線作為變量名的開始 下划線對於解釋器有特殊的意義,而且是內建標識符所使用的符號,所以應避免下划線作為變量名的開始。一般來講_xxx被看做私有的,在模塊或類外不可使用,所以當變量是私有時,用_xxx是很好的習慣。因為__xxx__有特殊含義,所以普通變量命名應避免這種風格

關於變量的賦值部分 Python的變量的賦值都是引用。這設計到它的內存管理機制。Python使用了引用計數這一簡單技術。內部記錄着所有使用中的對象各有多少引用。 當對象被創建時,就創建一個引用計數,當對象不背需要時,即引用計數為0時就被垃圾回收。 當對象被創建並賦值給變量時,該對象的引用計數就被設置為 1 當同一個對象又被賦值給其它變量時,或者作為參數傳遞給函數,方法或類實例時,或者被賦值為一個窗口對象的成員時,該對象的一個新的引用或者稱別名,就被創建(引用計數加1)

x = 2
y = x

第一句創建了一個整數對象並引用賦值給x。x是第一個引用,該對象的引用計數設置為 1 。當y = x 語句執行時,並沒有為y創建一個新對象,而是該對象的引用計數增加了1次。這是引用計數的增加。同樣還有作為參數被函數調用,或者對象被加到某個容器對象中時。 而當變量被賦值給另一個對象時,原對象的引用計數也會自動減 1

foo = 3
foo = '123'

當3被創建賦值給foo時,引用計數是1 。 當它重新賦值給對象'123'時,3的引用計數自動減1 當本地引用離開了作用范圍,比如函數結束時。 對象別名被顯式的銷毀 對象別名被賦值給其他對象 對象從一個窗口對象中移除 窗口對象本身被銷毀 這幾個情況都會減少引用計數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM