- Python程序設(shè)計(jì)與算法基礎(chǔ)教程(第2版)(微課版)
- 江紅 余青松
- 845字
- 2019-11-15 20:18:52
2.4 變量和賦值語句
計(jì)算機(jī)程序通常用于處理各種類型的數(shù)據(jù)(即對(duì)象),不同的數(shù)據(jù)屬于不同的數(shù)據(jù)類型,支持不同的運(yùn)算操作。
計(jì)算機(jī)程序處理的數(shù)據(jù)必須放入內(nèi)存。機(jī)器語言和匯編語言直接通過內(nèi)存地址訪問這些數(shù)據(jù),而高級(jí)語言則通過內(nèi)存單元命名(即變量)來訪問這些數(shù)據(jù)。
在Python 3中一切皆為對(duì)象。對(duì)象是某個(gè)類(類型)的實(shí)例,對(duì)象由唯一的id標(biāo)識(shí)。對(duì)象可以通過標(biāo)識(shí)符來引用,對(duì)象引用即指向具體對(duì)象實(shí)例的標(biāo)識(shí)符,也稱之為“變量”。
2.4.1 變量的聲明和賦值
變量的聲明和賦值用于把一個(gè)變量綁定到某個(gè)對(duì)象,其語法格式如下。

最簡(jiǎn)單的表達(dá)式是字面量,Python基于字面量的值創(chuàng)建一個(gè)對(duì)象,并綁定到變量;對(duì)于復(fù)雜的表達(dá)式,Python先求值表達(dá)式,然后返回表達(dá)式結(jié)果對(duì)象,并綁定到變量。
Python變量被訪問之前必須初始化,即賦值(綁定到某個(gè)對(duì)象),否則會(huì)報(bào)錯(cuò)。
【例2.15】 變量的聲明和賦值示例。

2.4.2 鏈?zhǔn)劫x值語句
鏈?zhǔn)劫x值(chained assignment)的語句形式如下:

等價(jià)于:

鏈?zhǔn)劫x值用于為多個(gè)變量賦同一個(gè)值。
【例2.16】 鏈?zhǔn)劫x值語句示例。

2.4.3 復(fù)合賦值語句
復(fù)合賦值運(yùn)算符不僅可以簡(jiǎn)化程序代碼,使程序精練,而且可以提高程序的效率。Python中的復(fù)合賦值運(yùn)算符如表2-3所示。
表2-3 復(fù)合賦值運(yùn)算符

【例2.17】 復(fù)合賦值示例。

2.4.4 刪除變量
用戶可以使用del語句刪除不再使用的變量。
【例2.18】 刪除變量示例。

2.4.5 序列解包賦值
Python支持將序列數(shù)據(jù)類型(參見第5章)解包為對(duì)應(yīng)相同個(gè)數(shù)的變量。
【例2.19】 序列解包示例。

注意:變量的個(gè)數(shù)必須與序列的元素個(gè)數(shù)一致,否則會(huì)產(chǎn)生錯(cuò)誤。例如,對(duì)于語句“x,y=(1,2,3)”,由于右側(cè)的元組序列包含3個(gè)元素,但是左側(cè)只有兩個(gè)變量,所以會(huì)產(chǎn)生錯(cuò)誤。
如果只需要解包部分值,則可以采用特殊變量“_”。例如:

【例2.20】 使用序列解包實(shí)現(xiàn)變量交換。

說明:在Python語言中,使用“a,b=b,a”的語句方式可以“優(yōu)雅地”實(shí)現(xiàn)兩個(gè)變量的值的交換。
2.4.6 常量
Python語言不支持常量,即沒有語法規(guī)則限制改變一個(gè)常量的值。Python語言使用約定,聲明在程序運(yùn)行過程中不會(huì)改變的變量為常量,通常使用全大寫字母(可以使用下畫線增加可閱讀性)表示常量名。
【例2.21】 常量示例。

- Getting Started with Citrix XenApp? 7.6
- 數(shù)據(jù)庫(kù)程序員面試筆試真題與解析
- C語言程序設(shè)計(jì)習(xí)題解析與上機(jī)指導(dǎo)(第4版)
- JavaScript+jQuery網(wǎng)頁(yè)特效設(shè)計(jì)任務(wù)驅(qū)動(dòng)教程(第2版)
- Python Game Programming By Example
- 深入理解Java7:核心技術(shù)與最佳實(shí)踐
- Learn Programming in Python with Cody Jackson
- 你不知道的JavaScript(中卷)
- 從零開始學(xué)C語言
- 軟件測(cè)試實(shí)用教程
- 劍指大數(shù)據(jù):企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目實(shí)戰(zhàn)(在線教育版)
- Mastering Linux Security and Hardening
- Fast Data Processing with Spark(Second Edition)
- JSP程序設(shè)計(jì)實(shí)例教程(第2版)
- Hands-On Neural Network Programming with C#