導(dǎo)讀
在本章中我們將學(xué)習(xí)到Python中的各種數(shù)據(jù)類型(如整型楞泼,浮點(diǎn)型驰徊,字符串等),我們會(huì)把得到的數(shù)據(jù)儲(chǔ)存到變量當(dāng)中去(就像給數(shù)據(jù)一個(gè)名字)堕阔,并在程序中用到這些變量(數(shù)據(jù))棍厂。
第一個(gè)Python程序
按照一般教程的尿性,程序員的第一個(gè)程序往往是輸出"Hello World"印蔬,至于為什么勋桶,因?yàn)槟甏眠h(yuǎn)已經(jīng)無法考證了。但是侥猬,我們的教程不一樣(我們不一樣例驹,不一樣,一樣退唠,樣~)鹃锈,我們的第一個(gè)程序就是——輸出"Hello My World!",驚不驚喜瞧预,意不意外屎债?接下來,就讓我們進(jìn)入正題垢油。
打開文本編輯器(本教程采用的是sublime text3盆驹,以后如無特殊說明,皆在此編輯器上運(yùn)行)滩愁,找到File-->new file躯喇,在出現(xiàn)的空白頁上敲入:
print("Hello My World!")
再次點(diǎn)擊file-->save as,選擇文件保存位置硝枉,命名為hello_world.py廉丽,接下來按住ctrl+b,或者tool-->build妻味,可以看到運(yùn)行結(jié)果正压,如下:
Hello My World!
[Finished in 0.1s]
這樣我們的第一個(gè)Python程序就完成了,我知道諸君一定有很多疑問责球,下面就讓我來一一解釋焦履。
Python文件的命名規(guī)則是必須以.py為后綴(py沒有別的什么意思啦),這樣Python解釋器才會(huì)識(shí)別運(yùn)行它棕诵,而文件的名字最好是要與程序內(nèi)容相關(guān)裁良,不然在后面編寫了很多程序以后,自己都會(huì)混亂校套。
一般情況下价脾,Python會(huì)逐行運(yùn)行直到文件最后,如果程序出現(xiàn)錯(cuò)誤則會(huì)彈出相應(yīng)提示笛匙,至于解決辦法(debug是不可能debug的侨把,這輩子都不可能)犀变,以后的章節(jié)會(huì)細(xì)講。
print是Python的輸出語句秋柄,在英文里的意思是打印获枝,它告訴解釋器,跟在后面括號(hào)里的內(nèi)容是要打印輸出到顯示器上面的骇笔,這樣我們就可以在控制臺(tái)看到程序運(yùn)行結(jié)果啦省店。
變量
接下來我們嘗試在hello_world.py中使用一個(gè)變量。這里的變量和數(shù)學(xué)里的變量一樣笨触,而賦予變量值的過程叫做賦值懦傍。在原來的代碼中做如下修改:
message="Hello My World!"
print(message)
記得要先保存再運(yùn)行,得到:
Hello My World!
[Finished in 0.1s]
運(yùn)行結(jié)果和我們上次的一樣芦劣,可以看到粗俱,變量名message相當(dāng)于替代了"Hello My World!"在print語句中的作用,就像人名一樣虚吟,你可以叫他全名寸认,亦可以用手指著他(當(dāng)然這樣很不禮貌就是了)。
我們想串慰,如果向同一個(gè)變量多次賦值偏塞,結(jié)果會(huì)怎樣呢,我們對(duì)程序做進(jìn)一步拓展邦鲫,再次給message賦值烛愧,如下:
message="Hello My World!"
print(message)
message="Hello My World!How are you?"
print(message)
保存后運(yùn)行輸出:
Hello My World!
Hello My World!How are you?
[Finished in 0.1s]
可以看到,同樣是變量名message為什么兩次輸出的結(jié)果不一樣呢掂碱?我們前面提到過,Python是逐行運(yùn)行的慎冤,當(dāng)程序運(yùn)行到第一個(gè)print語句時(shí)疼燥,此時(shí)的message的值是"Hello My World!",所以打印輸出自然未變蚁堤,而當(dāng)程序運(yùn)行到第三行時(shí)醉者,我們?cè)俅钨x值給了變量message,這時(shí)候最近的一次賦值就會(huì)覆蓋掉上一次的值披诗,自然print輸出message就變成了Hello My World!How are you?了撬即。
變量命名規(guī)則
就像給人取名字一樣,我們總是想要一個(gè)好的呈队,貼切的名字(那位叫狗剩的同學(xué)剥槐,請(qǐng)你坐下),在Python中也是這樣宪摧,給變量名命名要符合規(guī)范粒竖,詞意準(zhǔn)確颅崩,所以請(qǐng)務(wù)必牢記以下命名規(guī)則:
變量名只能包含字母,數(shù)字蕊苗,下劃線沿后,并且只能以字母或下劃線打頭。如朽砰,message_1尖滚。
變量名不能包含空格,但可以使用下劃線進(jìn)行分隔瞧柔。如漆弄,teacher_message。
不能將Python關(guān)鍵字當(dāng)做變量名非剃,因本文篇幅有限不一一列舉(其實(shí)是我記不字寐摺)。如备绽,print券坞。
變量名簡短準(zhǔn)確。如肺素,姓名用name恨锚,而不要用n或者xingming(笑)。
一個(gè)好的變量名就像一張精致的名片倍靡,帶有變量自身獨(dú)特的氣息猴伶,并且會(huì)伴隨程序的一生(好吧,嚴(yán)格意義上并沒有一生塌西,變量最后都難逃被銷毀的命運(yùn)啊他挎,正如人生一樣,但既然來到了這個(gè)世界捡需,就如夏花般燦爛美好的活下去吧)办桨。
字符串
字符串(String)顧名思義,就是由字符組成的詞串站辉,在Python中呢撞,用引號(hào)引起來的都是字符串,可以是單引號(hào)饰剥,雙引號(hào)殊霞,如:
"Hello My World!"
'This is a string.'
當(dāng)然,這種靈活性能讓你在字符串中包含引號(hào)和撇號(hào)汰蓉,前提是在引號(hào)匹配的情況下绷蹲,如:
"Hi,I'm Jack."
' I told my friend, "I love Python." '
那如果輸出的語句包含換行怎么辦呢,我們可以通過三個(gè)單引號(hào)('''...''')來解決:
message='''hello
my name is jack
what's you name'''
print(message)
輸出結(jié)果顯而易見:
hello
my name is jack
what's you name
字符串的使用關(guān)鍵就在于引號(hào)要相互匹配顾孽,尤其是在多重引號(hào)下(多重引號(hào)最為致命瘸右,笑)娇跟,下面講述字符串的簡單使用方法。
方法
什么是方法太颤?方法相當(dāng)于一個(gè)函數(shù)苞俘,一個(gè)小程序,而這個(gè)程序不需要我們自己編寫(當(dāng)然也可以加以修改)龄章,稱為內(nèi)置方法(函數(shù)),當(dāng)我們使用方法(或函數(shù))的時(shí)候吃谣,Python就會(huì)自動(dòng)調(diào)用該方法,以滿足我們的需求做裙。
方法的使用主要有兩種岗憋,即帶參(數(shù))和不帶參(數(shù)),在后面的例子中我們會(huì)逐漸認(rèn)識(shí)熟悉锚贱,這里就不加細(xì)講仔戈。
使用方法修改字符串大小寫
修改字符串大小寫的方法為title(),可以把首字母轉(zhuǎn)換為大寫拧廊,其他字母轉(zhuǎn)換為小寫监徘,如:
name="adam smith"
print(name.title())
保存后運(yùn)行,得到:
Adam Smith
讓我們來分析一下這個(gè)程序吧碾,第一行將"adam smith"賦值給變量name凰盔,name此時(shí)是字符串,所以name可以引用字符串的方法倦春,第二行的代碼name.title()就是引用了一個(gè)名為title()的方法(無參數(shù))户敬,此外我們還可以結(jié)合英語語意來簡單理解方法的作用,而不需要死記硬背睁本。編程是自由的尿庐,我們可以隨心所欲的簡單“測(cè)試”一下title()方法,如:
name="adam smith"
print(name.title())
name="adAM smith"
print(name.title())
name="Adam Smith"
print(name.title())
打印輸出結(jié)果為:
Adam Smith
Adam Smith
Adam Smith
可以看到呢堰,無論name的值是什么“形狀”屁倔,最后輸出的結(jié)果都是一樣的,這也反映了我們title()函數(shù)的功能暮胧。
其他大小寫轉(zhuǎn)換方法
讓我們?cè)倏磧蓚€(gè)簡單例子:
name="Adam Smith"
print(name.upper())
print(name.lower())
運(yùn)行一下程序可以看到:
ADAM SMITH
adam smith
同樣是name,我們用了兩個(gè)不同的方法upper()和lower()方法问麸,得到的結(jié)果一個(gè)是全部變成了大寫往衷,另一個(gè)相反,全部變成了小寫严卖,這樣我們就知道了原來upper()方法是把字符串轉(zhuǎn)換為大寫lower()方法是把字符串轉(zhuǎn)換為小寫的方法席舍。
合并字符串
很多情況下,我們都要用到合并字符串哮笆,比如在電話薄里我們常常把姓和名分開存儲(chǔ)来颤,必要時(shí)再取出來合并汰扭。下面我們用程序模擬一下合并的過程(好吧,其實(shí)就是一個(gè) + 把字符串合并):
first_name="Adam"
last_name="Smith"
full_name=first_name+" "+last_name
print(full_name)
為了美觀福铅,我們可以在中間加上一個(gè)空格萝毛,運(yùn)行程序可以看到:
Adam Smith
在這里+不等于數(shù)學(xué)上的+(什么數(shù)位對(duì)齊加之類的),而是像鼻涕一般(笑)把兩個(gè)字符串黏在一起滑黔,也就是合并笆包。
當(dāng)然,我們可以在加上點(diǎn)東西略荡,比如把打印輸出語句改為:
print("Hello,My name is "+full_name+",What's your name?")
輸出結(jié)果為:
Hello,My name is Adam Smith,What's your name?
諸如此類庵佣。
制表符,換行符的使用
制表符(\t)汛兜,換行符(\n)這種帶\的特殊字符稱為轉(zhuǎn)義字符巴粪,轉(zhuǎn)義字符有很多,只需要掌握常用的幾種就可以粥谬。我們通常用制表符肛根、換行符來給代碼添加空白,讓我們來看具體的例子:
print("python")
print("\tpython")
print("pyhton\njava\nc")
讓我們看看輸出結(jié)果:
python
python
pyhton
java
c
轉(zhuǎn)義符顧名思義帝嗡,當(dāng)程序運(yùn)行到這里時(shí)晶通,就不再是簡單的輸出\t之類的了,而是像翻譯一樣哟玷,把他翻譯成他所代表的含義狮辽,可以看到\t(制表符)相當(dāng)于4個(gè)空格,而\n相當(dāng)于換行巢寡。
刪除空白
作為Python程序員喉脖,常常會(huì)遇到很多莫名其妙的bug,而最苦逼的事情莫過于debug(找程序存在的bug)了抑月,當(dāng)最后發(fā)現(xiàn)原來是多了個(gè)空格的時(shí)候树叽,內(nèi)心是崩潰的。筆者在學(xué)習(xí)的過程中也是深有體會(huì)谦絮,常常是絞盡腦汁题诵,抓耳撓腮,順便心疼一地的頭發(fā)层皱。所以性锭,空格就單純用空格,tab就單純用tab叫胖。草冈。。請(qǐng)記住這個(gè)血的教訓(xùn)。怎棱。哩俭。
回到正題,刪除字符串兩端的空白用strip()拳恋,刪除左邊(left)空白就是lstrip()凡资,右邊(right)空白就是rstrip(),實(shí)例如下:
language=" Python? "
print("原格式---"+language+"---")
print("刪除左邊空格---"+language.lstrip()+"---")
print("刪除右邊空格---"+language.rstrip()+"---")
print("刪除兩端空格---"+language.strip()+"---")
為了讓結(jié)果更直接诅岩,我們加上左右兩邊的修飾讳苦,運(yùn)行結(jié)果如下:
原格式--- Python? ---
刪除左邊空格---Python? ---
刪除右邊空格--- Python---
刪除兩端空格---Python---
可以看到,字符串兩邊無論是一個(gè)還是兩個(gè)空格都會(huì)一并刪除吩谦。
數(shù)字
同數(shù)學(xué)上的數(shù)字一樣鸳谜,Python中的數(shù)也就不外乎整數(shù),浮點(diǎn)數(shù)(小數(shù))兩種式廷,當(dāng)然咐扭,這些數(shù)都能用于加(+)減(-)乘(*)除(/)的運(yùn)算(計(jì)算機(jī)中的乘除符號(hào)不同于數(shù)學(xué)),接下來讓我們來學(xué)習(xí)一下數(shù)的運(yùn)用滑废。
整數(shù)
直接看實(shí)例更為直觀:
x=2
y=3
a=2+3
b=2-3
c=2*3
d=2/3
print(a)
print(b)
print(c)
print(d)
保存后運(yùn)行得到:
5
-1
6
0.6666666666666666
值得我們注意的是最后一個(gè)蝗肪,數(shù)學(xué)意義上的2/3得到的是一個(gè)無限循環(huán)小數(shù),而計(jì)算機(jī)中的2/3因?yàn)榇鎯?chǔ)結(jié)果的長度有限蠕趁,會(huì)自動(dòng)截?cái)嗖⑶覜]有四舍五入薛闪。
再看一個(gè)特殊的運(yùn)算符號(hào),**俺陋,雙乘號(hào)表示乘方運(yùn)算:
z=2**3
print(z)
運(yùn)行結(jié)果為:
8
Python中的括號(hào)(())和數(shù)學(xué)中的括號(hào)一樣豁延,表示了運(yùn)算的次序,這里就不再贅述腊状,同學(xué)們可以自行測(cè)試诱咏。
浮點(diǎn)數(shù)
同樣,我們直接看實(shí)例:
x=0.1
y=0.2
a=x+y
b=x-y
c=x*y
d=x/y
print(a)
print(b)
print(c)
print(d)
運(yùn)行一下程序:
0.30000000000000004
-0.1
0.020000000000000004
0.5
結(jié)果顯而易見缴挖,但其實(shí)運(yùn)算的細(xì)節(jié)還有很多可講袋狞,我們這里只是先粗略的了解一下Python的運(yùn)算方式,詳細(xì)內(nèi)容會(huì)在后面章節(jié)中繼續(xù)呈現(xiàn)映屋。
str()函數(shù)
先看一個(gè)例子:
age=18
message="I'm "+age+" years old."
print(message)
這段代碼看似沒有錯(cuò)誤苟鸯,但是運(yùn)行一下我們發(fā)現(xiàn)出現(xiàn)了一大段的錯(cuò)誤提示消息,這時(shí)候我們不能著急棚点,讓我們安靜的(裝也要裝出來)分析一下程序:
Traceback (most recent call last):
? File "C:\Users\xxx\xxxxx\xxxxx\str.py", line 2, in
? ? message="I'm "+age+" years old."
TypeError: can only concatenate str (not "int") to str
重點(diǎn)在最后一行(看不懂英文的沒關(guān)系早处,我們可以用軟件翻譯一下),這句話的意思是“只能將str(而不是“int”)連接到str”乙濒,前面我們講過,int是整型,而str是字符串型颁股,電腦畢竟不是人腦么库,雖然我們?nèi)四X可以一眼知道但是電腦卻只能一步一步走,所以甘有,當(dāng)出現(xiàn)int和str混用時(shí)诉儒,電腦就秀逗了,我們需要做的就是把int轉(zhuǎn)換為str亏掀,通過str()函數(shù)就可以實(shí)現(xiàn)忱反,讓我們?cè)倏匆幌滦薷闹蟮拇a:
age=18
message="I'm "+str(age)+" years old."
print(message)
可以看到,此時(shí)的age是放在str()函數(shù)的括號(hào)里面滤愕,這就是我們說的帶參方法温算,運(yùn)行程序可以得到:
I'm 18 years old.
程序正確的輸出了我們想要的結(jié)果,并且沒有出現(xiàn)任何錯(cuò)誤提示间影,這時(shí)候我們就可以擦擦額角的汗珠長舒一口氣了注竿。
注釋
#好的,我們終于來到了本章的最后一個(gè)內(nèi)容魂贬。
在Python中#后面的內(nèi)容就相當(dāng)于注釋巩割,即在程序運(yùn)行時(shí)不會(huì)執(zhí)行的內(nèi)容,通常注釋是為了程序能有更好的可讀性付燥,這樣當(dāng)別人在閱讀你的程序時(shí)或者當(dāng)你回顧很久以前的程序時(shí)就不需要再絞盡腦汁想程序的功能了宣谈。
#小提示
在sublime text 3中,鼠標(biāo)選中你想要注釋的內(nèi)容(或多段內(nèi)容)键科,按住ctrl+/也能實(shí)現(xiàn)注釋闻丑。
小結(jié)
這是本教程正式內(nèi)容的第一章,我們主要講了變量萝嘁,字符串梆掸,數(shù)字,注釋四個(gè)部分牙言。
通過本章的學(xué)習(xí)酸钦,我們已經(jīng)可以實(shí)現(xiàn)創(chuàng)建變量,對(duì)字符串進(jìn)行大小寫轉(zhuǎn)換咱枉,去除左右空格卑硫,用整數(shù)和浮點(diǎn)數(shù)進(jìn)行基本運(yùn)算,用注釋增強(qiáng)代碼可讀性等內(nèi)容蚕断。