數(shù)據(jù)類型
計算機顧名思義就是可以做數(shù)學計算的機器柳沙,因此岩灭,計算機程序理所當然地可以處理各種數(shù)值。但是赂鲤,計算機能處理的遠不止數(shù)值,還可以處理文本柱恤、圖形数初、音頻、視頻梗顺、網(wǎng)頁等各種各樣的數(shù)據(jù)泡孩,不同的數(shù)據(jù),需要定義不同的數(shù)據(jù)類型寺谤。在Python中仑鸥,能夠直接處理的數(shù)據(jù)類型有以下幾種:
整數(shù)
Python可以處理任意大小的整數(shù),當然包括負整數(shù)变屁,在程序中的表示方法和數(shù)學上的寫法一模一樣眼俊,例如:1,100粟关,-8080疮胖,0,等等。
計算機由于使用二進制澎灸,所以院塞,有時候用十六進制表示整數(shù)比較方便,十六進制用0x前綴和0-9性昭,a-f表示拦止,例如:0xff00,0xa5b4c3d2糜颠,等等创泄。
浮點數(shù)
浮點數(shù)也就是小數(shù),之所以稱為浮點數(shù)括蝠,是因為按照科學記數(shù)法表示時鞠抑,一個浮點數(shù)的小數(shù)點位置是可變的,比如忌警,1.23x109和12.3x108是完全相等的搁拙。浮點數(shù)可以用數(shù)學寫法,如1.23法绵,3.14箕速,-9.01,等等朋譬。但是對于很大或很小的浮點數(shù)盐茎,就必須用科學計數(shù)法表示,把10用e替代徙赢,1.23x109就是1.23e9字柠,或者12.3e8,0.000012可以寫成1.2e-5狡赐,等等窑业。
字符串
字符串是以單引號'或雙引號"括起來的任意文本,比如'abc'枕屉,"xyz"等等常柄。請注意,''或""本身只是一種表示方式搀擂,不是字符串的一部分西潘,因此,字符串'abc'只有a哨颂,b喷市,c這3個字符。如果'本身也是一個字符咆蒿,那就可以用""括起來东抹,比如"I'm OK"包含的字符是I蚂子,',m缭黔,空格食茎,O,K這6個字符馏谨。
如果字符串內(nèi)部既包含'又包含"怎么辦别渔?可以用轉義字符\來標識,比如:
'I\'m \"OK\"!'
表示的字符串內(nèi)容是:
I'm "OK"!
轉義字符\可以轉義很多字符惧互,比如\n表示換行哎媚,\t表示制表符,字符\本身也要轉義喊儡,所以\\表示的字符就是\拨与,可以在Python的交互式命令行用print()打印字符串看看:
>>>print('I\'m ok.')I'm ok.
>>> print('I\'m learning\nPython.')I'm learning
Python.
>>> print('\\\n\\')
\
\
如果字符串里面有很多字符都需要轉義,就需要加很多\艾猜,為了簡化买喧,Python還允許用r''表示''內(nèi)部的字符串默認不轉義,可以自己試試:
>>> print('\\\t\\')
\? ? ? \
>>> print(r'\\\t\\')
\\\t\\
如果字符串內(nèi)部有很多換行匆赃,用\n寫在一行里不好閱讀淤毛,為了簡化,Python允許用'''...'''的格式表示多行內(nèi)容算柳,可以自己試試:
>>> print('''line1... line2... line3''')line1line2line3
上面是在交互式命令行內(nèi)輸入低淡,注意在輸入多行內(nèi)容時,提示符由>>>變?yōu)?..瞬项,提示你可以接著上一行輸入蔗蹋,注意...是提示符,不是代碼的一部分:
布爾值
布爾值和布爾代數(shù)的表示完全一致滥壕,一個布爾值只有True纸颜、False兩種值,要么是True绎橘,要么是False,在Python中唠倦,可以直接用True称鳞、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來:
空值
空值是Python里一個特殊的值稠鼻,用None表示冈止。None不能理解為0,因為0是有意義的候齿,而None是一個特殊的空值熙暴。
此外闺属,Python還提供了列表、字典等多種數(shù)據(jù)類型周霉,還允許創(chuàng)建自定義數(shù)據(jù)類型掂器,我們后面會繼續(xù)講到。
變量
變量的概念基本上和初中代數(shù)的方程變量是一致的俱箱,只是在計算機程序中国瓮,變量不僅可以是數(shù)字,還可以是任意數(shù)據(jù)類型狞谱。
變量在程序中就是用一個變量名表示了乃摹,變量名必須是大小寫英文、數(shù)字和_的組合跟衅,且不能用數(shù)字開頭孵睬,比如:
a =1
變量a是一個整數(shù)。
t_007 ='T007'
變量t_007是一個字符串伶跷。
Answer =True
變量Answer是一個布爾值True掰读。
在Python中,等號=是賦值語句撩穿,可以把任意數(shù)據(jù)類型賦值給變量磷支,同一個變量可以反復賦值,而且可以是不同類型的變量食寡,例如
這種變量本身類型不固定的語言稱之為動態(tài)語言雾狈,與之對應的是靜態(tài)語言。靜態(tài)語言在定義變量時必須指定變量類型抵皱,如果賦值的時候類型不匹配善榛,就會報錯。例如Java是靜態(tài)語言呻畸,賦值語句如下(// 表示注釋):
inta =123;// a是整數(shù)類型變量a ="ABC";// 錯誤:不能把字符串賦給整型變量
和靜態(tài)語言相比移盆,動態(tài)語言更靈活,就是這個原因伤为。
最后咒循,理解變量在計算機內(nèi)存中的表示也非常重要。當我們寫:
a ='ABC'
時绞愚,Python解釋器干了兩件事情:
在內(nèi)存中創(chuàng)建了一個'ABC'的字符串叙甸;
在內(nèi)存中創(chuàng)建了一個名為a的變量,并把它指向'ABC'位衩。
也可以把一個變量a賦值給另一個變量b裆蒸,這個操作實際上是把變量b指向變量a所指向的數(shù)據(jù),例如下面的代碼:
a = 'ABC'
b = a
a = 'XYZ'
print(b)
最后一行打印出變量b的內(nèi)容到底是'ABC'呢還是'XYZ'糖驴?如果從數(shù)學意義上理解僚祷,就會錯誤地得出b和a相同佛致,也應該是'XYZ',但實際上b的值是'ABC'
常量
所謂常量就是不能變的變量辙谜,比如常用的數(shù)學常數(shù)π就是一個常量俺榆。在Python中,通常用全部大寫的變量名表示常量:
PI =3.14159265359
但事實上PI仍然是一個變量筷弦,Python根本沒有任何機制保證PI不會被改變肋演,所以,用全部大寫的變量名表示常量只是一個習慣上的用法烂琴,如果你一定要改變變量PI的值爹殊,也沒人能攔住你。
最后解釋一下整數(shù)的除法為什么也是精確的奸绷。在Python中梗夸,有兩種除法,一種除法是/:
>>> 10/33.3333333333333335
/除法計算結果是浮點數(shù)号醉,即使是兩個整數(shù)恰好整除反症,結果也是浮點數(shù):
>>> 9/33.0
還有一種除法是//,稱為地板除畔派,兩個整數(shù)的除法仍然是整數(shù):
>>>10// 33
你沒有看錯铅碍,整數(shù)的地板除//永遠是整數(shù),即使除不盡线椰。要做精確的除法胞谈,使用/就可以。
因為//除法只取結果的整數(shù)部分憨愉,所以Python還提供一個余數(shù)運算烦绳,可以得到兩個整數(shù)相除的余數(shù):
>>> 10%31
無論整數(shù)做//除法還是取余數(shù),結果永遠是整數(shù)配紫,所以径密,整數(shù)運算結果永遠是精確的。
????以上內(nèi)容均為廖雪峰老師所寫躺孝,為了找個方式鼓勵自己多多學習享扔,讓自己認真讀并加深對廖老師每一句得話得含義,邊學邊復制簡述植袍,記錄在簡書這個平臺里伪很,大家要是有興趣一起學習,可以登陸廖雪峰老師得官方網(wǎng)站奋单。特別贊~~
? ? 最后,謝謝簡書這個平臺猫十,謝謝廖雪峰老師的知識的無私奉獻~