真正零基础Python入门:手把手教你从变量和赋值语句学起
導(dǎo)讀:在本文中,你會(huì)學(xué)到如何處理數(shù)字、定義與使用變量和常量,以及編寫使用這些數(shù)據(jù)類型執(zhí)行實(shí)際任務(wù)的簡(jiǎn)單程序。
作者:凱·霍斯特曼(Cay Horstmann),蘭斯·尼塞斯(Rance Necaise)
如需轉(zhuǎn)載請(qǐng)聯(lián)系大數(shù)據(jù)(ID:hzdashuju)
當(dāng)你的程序執(zhí)行計(jì)算時(shí),需要把值存儲(chǔ)下來以便后面使用。在Python程序中使用變量來存儲(chǔ)值。本文你會(huì)學(xué)到如何定義和使用變量。
為了演示變量的用法,我們會(huì)編寫一個(gè)解決下面問題的程序:在售的軟飲料一般分為罐裝和瓶裝。在商店里,一包6個(gè)12盎司的罐裝飲料與一個(gè)2升的瓶裝飲料售價(jià)一樣,你應(yīng)該買哪個(gè)?(對(duì)于液態(tài)而言,12盎司約等于0.355升。)
▲哪一個(gè)包含更多的蘇打?6個(gè)12盎司的罐裝包,還是一個(gè)2升的瓶裝?
在我們的程序中,會(huì)定義變量來表示一包中罐的數(shù)量和每罐的體積,然后我們會(huì)計(jì)算一個(gè)6罐包的體積(以升為單位),并且輸出答案。
01 定義變量
在計(jì)算機(jī)程序中,變量是一個(gè)存儲(chǔ)位置,每個(gè)變量都有名字并且包含一個(gè)值。
變量類似于停車場(chǎng)的一個(gè)停車位。停車位擁有一個(gè)標(biāo)識(shí)符(例如“J053”),并且可以容納一輛交通工具。變量擁有一個(gè)名字(例如cansPerPack),并且可以存儲(chǔ)一個(gè)值(例如6)。
▲類似于計(jì)算機(jī)程序中的變量,一個(gè)停車位擁有一個(gè)標(biāo)識(shí)符和一個(gè)內(nèi)容
▲賦值
使用賦值語句把一個(gè)值存入變量,例如:
賦值語句的左邊是一個(gè)變量,右邊是一個(gè)可計(jì)算得到某個(gè)值的表達(dá)式,表達(dá)式的值將會(huì)被存儲(chǔ)到該變量中。
第一次給變量賦值時(shí),會(huì)創(chuàng)建變量并使用那個(gè)值進(jìn)行初始化。定義之后,該變量就可以在另一個(gè)語句中使用了,例如:
會(huì)輸出cansPerPack變量中存儲(chǔ)的值。
如果一個(gè)已定義的變量被賦新值,新的值會(huì)替換掉該變量中已經(jīng)存儲(chǔ)的值,例如:
會(huì)把變量cansPerPack中存儲(chǔ)的6改變?yōu)?。圖2-1演示了上面的賦值語句。
▲圖2-1 執(zhí)行兩個(gè)賦值語句
符號(hào)=并不表示左右相等,而是表示右邊的值被放置到左邊變量的存儲(chǔ)空間中。
一定不要混淆賦值運(yùn)算符和算術(shù)中表示相等的符號(hào)=。賦值是用來完成某個(gè)任務(wù)的指令——一般而言,就是把一個(gè)值存入一個(gè)變量。
例如,在Python中,下面的語句是合法的
第2個(gè)語句表示查詢變量cansPerPack中的值,加上2,再把結(jié)果存入變量cansPerPack(見圖2-2)。這個(gè)語句的作用是把變量cansPerPack中的值增加2。如果執(zhí)行該語句前變量cansPerPack中的值是8,那么會(huì)變成10。當(dāng)然,數(shù)學(xué)表達(dá)式x = x + 2是沒有意義的,沒有值會(huì)和自身加2相等。
▲圖2-2?執(zhí)行賦值語句cansPerPack = cansPerPack + 2
02 數(shù)字類型
計(jì)算機(jī)處理表示信息的數(shù)據(jù),而這些數(shù)據(jù)可能是不同類型的。實(shí)際上,Python中的每個(gè)值都屬于一個(gè)特定的類型。一個(gè)值的數(shù)據(jù)類型決定了數(shù)據(jù)在計(jì)算機(jī)中如何表示以及能夠?qū)υ摂?shù)據(jù)進(jìn)行什么樣的操作。語言本身提供的數(shù)據(jù)類型被稱作基本數(shù)據(jù)類型。Python支持大量的數(shù)據(jù)類型:數(shù)字、字符串、文件、容器,等等。程序員也可以定義自己的自定義數(shù)據(jù)類型。
在Python中,有幾種不同類型的數(shù)字。整數(shù)是一個(gè)完全不包含小數(shù)部分的數(shù)字。例如,每一包中必須包含整數(shù)個(gè)易拉罐—你無法擁有小數(shù)個(gè)易拉罐。在Python中,這個(gè)類型叫作int。當(dāng)需要小數(shù)部分時(shí)(例如數(shù)字0.355),我們使用浮點(diǎn)數(shù),在Python中叫作float。
在Python程序中出現(xiàn)的6或0.355這樣的數(shù)值,被稱作數(shù)字常量。如果一個(gè)數(shù)字常量有小數(shù)點(diǎn),則被稱作浮點(diǎn)數(shù),否則被稱作整數(shù)。表2-1說明了如何在Python中寫整數(shù)和浮點(diǎn)數(shù)常量。
數(shù)字 | 類型 | 說明 |
6 | int | 沒有小數(shù)部分的整數(shù)。 |
-6 | int | 整數(shù)可以是負(fù)數(shù)。 |
0 | int | 0也是整數(shù)。 |
0.5 | float | 具有小數(shù)部分的數(shù)字屬于float類型。 |
1.0 | float | 具有小數(shù)部分.0的整數(shù)屬于float類型。 |
1E6 | float | 指數(shù)形式1x106或1000000。指數(shù)形式的數(shù)字總是具有float類型。 |
2.96E-2 | float | 負(fù)指數(shù):2.96x10-2=2.96/100=0.0296 |
100,000 | 錯(cuò)誤:不要使用逗號(hào)作為小數(shù)分隔符。 | |
3 1/2 | 錯(cuò)誤:不要使用分?jǐn)?shù),應(yīng)該使用小數(shù)形式:3.5。 |
▲表2-1 Python中的數(shù)字常量
Python中的變量可以存儲(chǔ)任意類型的數(shù)值,數(shù)據(jù)類型與值相關(guān)聯(lián),而不是與變量相關(guān)聯(lián)。例如,考慮使用整型數(shù)值初始化的變量:
同一個(gè)變量稍后可以擁有一個(gè)float類型的值:
它甚至可以包含一個(gè)字符串:
然而,這并不是一個(gè)好主意。如果你使用這個(gè)變量并且該變量中包含一個(gè)意料之外的類型的值,你的程序會(huì)出錯(cuò)。一旦你使用一個(gè)特定類型的值初始化了某個(gè)變量,你應(yīng)該注意保持它的類型不變。
例如,因?yàn)槎惵什灰欢ㄊ钦麛?shù),使用浮點(diǎn)數(shù)初始化變量taxRate是個(gè)好主意,即使它恰好是個(gè)整數(shù):
這會(huì)幫你記住變量taxRate可能會(huì)有小數(shù)部分,即使初始值并沒有小數(shù)部分。
03 變量名
當(dāng)定義變量時(shí),你需要給它起一個(gè)名字來解釋其用途,在Python中起名時(shí)必須要遵循一些基本原則:
必須以字母或下劃線(_)開頭,并且其他的字符必須是字母、數(shù)字或下劃線。
不能使用?或%之類的符號(hào),空白字符也不允許出現(xiàn)在名字之內(nèi)。你可以使用大寫字母表示單詞邊界,就像cansPerPack。這種命名規(guī)則叫作駝峰規(guī)則,因?yàn)槊种虚g的大寫字母看上去很像駱駝的駝峰。
名字對(duì)大小寫敏感,也就是說,canVolume和canvolume是不同的名字。
不能使用if或class這樣的保留字作為名字,這些保留字在Python中有特殊的含義。
這些是Python語言的硬性規(guī)定,另外還有兩條應(yīng)該遵守的規(guī)則可以提高你的品味和編程習(xí)慣:
最好使用描述性的名字,例如cansPerPack就比cpp這樣縮寫的名字好很多。
大多數(shù)Python程序員使用小寫字母開頭的變量名(例如cansPerPack)。與此相反,使用僅包含大寫字母的名字(例如CAN_VOLUME)表示常量。另外,大寫字母開頭的名字一般用來表示用戶自定義的類型(例如GraphicsWindow)。
表2-2給出了Python中合法和非法的變量名。
變量名 | 說明 |
canVolum1 | 變量名包含字母、數(shù)字和下劃線。 |
x | 在數(shù)學(xué)公式中可以使用x或y這樣短的變量名。這在Python中是合法的,但是并不常見,因?yàn)檫@會(huì)使得程序難以理解(見編程小提示2.1)。 |
CanVolume | 注意:變量名是大小寫敏感的。這個(gè)變量名與canVolume不同,并且違反了變量名應(yīng)以小寫字母開頭的約定。 |
6pack | 錯(cuò)誤:變量名不能以數(shù)字開頭。 |
can volume | 錯(cuò)誤:變量名中不能含有空格。 |
class | 錯(cuò)誤:不能使用保留字作為變量名。 |
1tr/f1.oz | 錯(cuò)誤:不能使用.或/這樣的符號(hào)。 |
▲表2-2 Python中的變量名
04 常量
常量是指指定了初始值后,其值不應(yīng)該再改變。一些語言允許程序員顯式地標(biāo)記常量,并且在你試圖修改常量的值時(shí)會(huì)產(chǎn)生語法錯(cuò)誤。Python由程序員自己保證常量的值不被改變。所以,常量名全部大寫是一個(gè)慣例。
MAX_SIZE?=?100
遵循這樣的約定,你可以為自己和他人提供信息,在整個(gè)程序中全部大寫的標(biāo)識(shí)符是常量。
在程序中使用具名常量來解釋數(shù)值是一個(gè)好的編程風(fēng)格。例如,比較語句
和
閱讀第一條語句的時(shí)候可能無法理解數(shù)字2的含義,而第二條語句使用具名常量使得計(jì)算非常清晰。
05 注釋
當(dāng)程序越來越復(fù)雜時(shí),你應(yīng)該增加注釋,用來向人類閱讀者解釋代碼。例如,下面的注釋解釋了常量的值:
這個(gè)注釋為人類閱讀者解釋了數(shù)字0.355的含義。解釋器根本不會(huì)執(zhí)行注釋,它會(huì)忽略從#符號(hào)開始到行尾的任何東西。
提供注釋是一個(gè)好的習(xí)慣。這會(huì)幫助閱讀你的代碼的程序員理解你的意圖。并且,你會(huì)發(fā)現(xiàn)注釋對(duì)于回顧和檢驗(yàn)自己的代碼也是非常有幫助的。
現(xiàn)在你已經(jīng)了解了變量、常量、賦值語句和注釋的內(nèi)容,我們就可以開始編寫解決本章開始問題的程序了。程序顯示一個(gè)6罐裝易拉罐包的容積以及一個(gè)6罐包和一個(gè)2升瓶裝的總?cè)莘e。我們使用常量表示易拉罐和瓶子的容積,變量totalVolume被初始化為易拉罐的容積。使用賦值語句把瓶子的容積增加上去。正如程序輸出所顯示,6罐包裝包含2升以上的蘇打水。
#?這個(gè)程序計(jì)算一個(gè)6罐裝包蘇打水易拉罐的容積(以升為單位)以及1個(gè)6罐裝包和1個(gè)2升瓶裝的總?cè)萘俊?/span>
#
#?1個(gè)12盎司的易拉罐和1個(gè)2升瓶有多少升
CAN_VOLUME?=?0.355
BOTTLE_VOLUME?=?2.0
#?每包的易拉罐數(shù)量
cansPerPack?=?6
#?計(jì)算易拉罐的總?cè)莘e
totalVolume?=?cansPerPack?*?CAN_VOLUME
print("A?six-pack?of?12-ounce?cans?contains",?totalVolume,?"liters.")?
#計(jì)算易拉罐和2升瓶裝的總?cè)莘e
totalVolume?=?totalVolume?+?BOTTLE_VOLUME?
print("A?six-pack?and?a?two-liter?bottle?contain",?totalVolume,?"liters.")
程序運(yùn)行結(jié)果
A?six-pack?and?a?two-liter?bottle?contain?4.13?liters.
關(guān)于作者: 凱·霍斯特曼(Cay Horstmann) ,圣何塞州立大學(xué)計(jì)算機(jī)科學(xué)系教授,Java的倡導(dǎo)者,經(jīng)常在開發(fā)人員會(huì)議上發(fā)表演講。他是《Java核心技術(shù)》的作者,同時(shí)也關(guān)注Python、Scala、C++等語言,為專業(yè)程序員和計(jì)算機(jī)科學(xué)專業(yè)學(xué)生編寫過數(shù)十本圖書。?
蘭斯·尼塞斯(Rance Necaise) 蘭道爾夫-麥肯學(xué)院計(jì)算機(jī)科學(xué)系副教授,撰寫了《Data Structures and Algorithms Using Python》和《Python for Java Programmers》等技術(shù)書籍。
本文摘編自《Python程序設(shè)計(jì)(原書第2版)》,經(jīng)出版方授權(quán)發(fā)布。
延伸閱讀《Python程序設(shè)計(jì)(原書第2版)》
點(diǎn)擊上圖了解及購(gòu)買
轉(zhuǎn)載請(qǐng)聯(lián)系微信:DoctorData
推薦語:專為Python初學(xué)者打造的入門教材,講解清晰實(shí)用,案例豐富有趣。
據(jù)統(tǒng)計(jì),99%的大咖都完成了這個(gè)神操作
▼
更多精彩
在公眾號(hào)后臺(tái)對(duì)話框輸入以下關(guān)鍵詞
查看更多優(yōu)質(zhì)內(nèi)容!
PPT?|?報(bào)告?|?讀書?|?書單?|?干貨?
大數(shù)據(jù)?|?揭秘?|?Python?|?可視化
AI?|?人工智能?|?5G?|?區(qū)塊鏈
機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?神經(jīng)網(wǎng)絡(luò)
1024?|?段子?|?數(shù)學(xué)?|?高考
猜你想看
Python實(shí)操:手把手教你用Matplotlib把數(shù)據(jù)畫出來
有關(guān)華為、5G、芯片和操作系統(tǒng),這些書你讀過幾本?
什么是數(shù)據(jù)?數(shù)據(jù)科學(xué)家需要掌握哪些技能?終于有人講明白了
你為什么選擇Python?4000名用戶提到了這些原因
Q:?你的注釋能讓其他人看懂嗎?
歡迎留言與大家分享
覺得不錯(cuò),請(qǐng)把這篇文章分享給你的朋友
轉(zhuǎn)載 / 投稿請(qǐng)聯(lián)系:baiyu@hzbook.com
更多精彩,請(qǐng)?jiān)诤笈_(tái)點(diǎn)擊“歷史文章”查看
點(diǎn)擊閱讀原文,了解更多
總結(jié)
以上是生活随笔為你收集整理的真正零基础Python入门:手把手教你从变量和赋值语句学起的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搞定月薪30K的AI热门领域,这份书单请
- 下一篇: 入门干货:Python操作Word文件经