国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

2015/8/26Python基礎(chǔ)(1):基本規(guī)則及賦值

2019-11-14 17:02:31
字體:
供稿:網(wǎng)友

Python有如下的基本規(guī)則:
  #后表示注釋
  /n是行分隔符
  /是繼續(xù)上一行,將過長語句分開
 ?。环痔?hào)將兩個(gè)語句連接在一行中
  :冒號(hào)將代碼頭和體分開
  代碼塊用縮進(jìn)塊的方式體現(xiàn)
  不同縮進(jìn)深度分隔不同的代碼塊
  Python文件用模塊的形式組織

縮進(jìn)推薦風(fēng)格,縮進(jìn)四個(gè)空格寬度,避免使用制表符。

 

賦值語句
Python中,主要賦值運(yùn)算符是等號(hào)( = )
賦值不是直接將一個(gè)值賦給一個(gè)變量,對(duì)象是通過引用傳遞的。不管變量是新創(chuàng)建的還是已經(jīng)存在的,都是將該對(duì)象的引用賦值給變量。

C語言中,賦值語句可以當(dāng)成一個(gè)表達(dá)式,可以返回值。但在Python中,賦值語句不會(huì)返回值。這使得這樣的語句是非法的

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

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

同樣的Python中鏈?zhǔn)劫x值并沒有問題。

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

同時(shí)還有增量賦值符

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

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

>>> x, y, z = 1, 2, 'a string'>>> x1>>> y2>>> z'a string'>>> x, y, z(1, 2, 'a string')

賦值時(shí)將等號(hào)兩邊的對(duì)象都看成元組

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

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

 

專用下劃線標(biāo)識(shí)符

  _xxx 不用'from module import *'導(dǎo)入
  __xxx__系統(tǒng)定義名字
  __xxx 類中私有變量名

風(fēng)格提示: 避免用下劃線作為變量名的開始
下劃線對(duì)于解釋器有特殊的意義,而且是內(nèi)建標(biāo)識(shí)符所使用的符號(hào),所以應(yīng)避免下劃線作為變量名的開始。一般來講_xxx被看做私有的,在模塊或類外不可使用,所以當(dāng)變量是私有時(shí),用_xxx是很好的習(xí)慣。因?yàn)開_xxx__有特殊含義,所以普通變量命名應(yīng)避免這種風(fēng)格


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

x = 2y = x

第一句創(chuàng)建了一個(gè)整數(shù)對(duì)象并引用賦值給x。x是第一個(gè)引用,該對(duì)象的引用計(jì)數(shù)設(shè)置為 1 。當(dāng)y = x 語句執(zhí)行時(shí),并沒有為y創(chuàng)建一個(gè)新對(duì)象,而是該對(duì)象的引用計(jì)數(shù)增加了1次。這是引用計(jì)數(shù)的增加。同樣還有作為參數(shù)被函數(shù)調(diào)用,或者對(duì)象被加到某個(gè)容器對(duì)象中時(shí)。
而當(dāng)變量被賦值給另一個(gè)對(duì)象時(shí),原對(duì)象的引用計(jì)數(shù)也會(huì)自動(dòng)減 1

foo = 3foo = '123'

當(dāng)3被創(chuàng)建賦值給foo時(shí),引用計(jì)數(shù)是1 。 當(dāng)它重新賦值給對(duì)象'123'時(shí),3的引用計(jì)數(shù)自動(dòng)減1
當(dāng)本地引用離開了作用范圍,比如函數(shù)結(jié)束時(shí)。
對(duì)象別名被顯式的銷毀
對(duì)象別名被賦值給其他對(duì)象
對(duì)象從一個(gè)窗口對(duì)象中移除
窗口對(duì)象本身被銷毀
這幾個(gè)情況都會(huì)減少引用計(jì)數(shù)


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武汉市| 莱阳市| 南华县| 介休市| 类乌齐县| 晋中市| 武鸣县| 泰和县| 博湖县| 西峡县| 虎林市| 丘北县| 新沂市| 江陵县| 江口县| 贵南县| 黔东| 涟水县| 姜堰市| 兴化市| 中宁县| 南宫市| 富源县| 肥西县| 柯坪县| 镇赉县| 和硕县| 五河县| 高青县| 三亚市| 娱乐| 天台县| 莱西市| 辽宁省| 遂溪县| 武汉市| 广安市| 鄂托克前旗| 张家界市| 灯塔市| 阿拉善左旗|