數(shù)據(jù)類型
?? ??整數(shù)故响,寫法同數(shù)學(xué)邏輯宏蛉,某些情況使用16進(jìn)制(0xa5b4c3d2)
? ??浮點數(shù),對于很大或很小的浮點數(shù)庭砍,就必須用科學(xué)計數(shù)法表示场晶,把10用e替代,1.23x109就是1.23e9怠缸,或者12.3e8诗轻,0.000012可以寫成1.2e-5。
? ? 注意揭北,整數(shù)運算永遠(yuǎn)是精確的(除法也是精確的扳炬?@粲薄),而浮點數(shù)運算則可能會有四舍五入的誤差恨樟。
? ??字符串半醉,以單引號'或雙引號"括起來的任意文本,比如'abc'劝术,"xyz"等等缩多。如果'本身也是一個字符,那就可以用""括起來养晋。如果字符串內(nèi)部既包含'又包含"怎么辦衬吆?可以用轉(zhuǎn)義字符\來標(biāo)識。為了簡化绳泉,Python允許用'''...'''的格式表示多行內(nèi)容逊抡,還允許用r' '表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義
>>> print('\\\t\\')
\ \
>>> print(r'\\\t\\')
\\\t\\
>>>print(r'''Hello,
Lisa!''')?
Hello,?
Lisa!
? ??布爾值,可以用and零酪、or和not運算冒嫡,即與或非。
? ??空值蛾娶,是Python里一個特殊的值灯谣,用None表示。None不能理解為0蛔琅,因為0是有意義的胎许,而None是一個特殊的空值。
? ? 有趣的是罗售,Python中對整數(shù)和浮點數(shù)的大小沒有限制辜窑,但超出一定范圍時,浮點數(shù)會變?yōu)閕nf(無限大)寨躁。
常量和變量
?????變量穆碎,Python作為動態(tài)語言,變量本身類型不固定职恳,在賦值時無需對類型進(jìn)行聲明所禀。
????Python中沒有對常量的固定聲明,僅在書寫習(xí)慣上使用的全部大寫來表示常量放钦。
字符串和編碼
? ? Python3中色徘,以Unicode編碼,并且操禀,提供了 ord() 和 chr() 函數(shù)獲取字符的編碼和將編碼轉(zhuǎn)換為對應(yīng)字符褂策,同樣的,使用轉(zhuǎn)制符 \ 也能輸出編碼對應(yīng)的字符。Python對bytes類型的數(shù)據(jù)用帶b前綴的單引號或雙引號表示斤寂。
?????Python對bytes類型的數(shù)據(jù)用帶b前綴的單引號或雙引號表示耿焊。通過encode和decode函數(shù)可以實現(xiàn)不同編碼方式的編碼和譯碼。
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87
>>> b'ABC'.decode('ascii')
'ABC'
>>>b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文‘
????要計算str包含多少個字符遍搞,可以用len()函數(shù)罗侯。len()函數(shù)計算的是str的字符數(shù),如果換成bytes尾抑,len()函數(shù)就計算字節(jié)數(shù)歇父。
????保存源代碼時,就需要務(wù)必指定保存為UTF-8編碼再愈。當(dāng)Python解釋器讀取源代碼時,為了讓它按UTF-8編碼讀取护戳,我們通常在文件開頭寫上這兩行翎冲,同時必須并且要確保文本編輯器正在使用UTF-8 without BOM編碼:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
格式化
? ? 類似與C艸,舉例如下媳荒,可以用%%轉(zhuǎn)義表示%抗悍。例如%02d可以補(bǔ)零。
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
也可以使用format()函數(shù)钳枕,如下
>>> 'Hello, {0}, 成績提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成績提升了 17.1%
使用list和tuple
list
????classmates = ['Michael','Bob','Tracy'] 即為一個list缴渊。
? ??lens(classmates)可獲得該list元素個數(shù),classmates[i]或classmates[i-n]訪問第i-1個元素。
? ??classmates.append('Adam')可以追加元素到list的末尾鱼炒。
? ???classmates.pop() 用以刪除末尾元素衔沼;classmates.pop(i) 刪除對應(yīng)元素。
tuple
????classmates = ('Michael','Bob','Tracy')昔瞧,classmates即為一個tuple指蚁,與list不同,tuple一旦初始化不可修改自晰,在括號與tuple沖突時凝化,認(rèn)為是小括號。
條件判斷
? ??if條件?:?執(zhí)行部分 else?:?執(zhí)行部分 (多層時可以用elif)?注意酬荞,執(zhí)行部分需縮進(jìn)
循環(huán)
? ??for x in y?將list或tuple y中的每一個x迭代出來循環(huán)搓劫。for x in range(101) 即可執(zhí)行0到100的整數(shù)序列循環(huán)
? ??while?同C艸
? ??break?同C艸,可提前結(jié)束循環(huán)
? ??continue同C艸混巧,可跳過當(dāng)前循環(huán)
dict和set
dict
?????d = {'Michael':95,'Bob':75,'Tracy':85}即為一個dict枪向,d['Michael']即可讀取和寫入對應(yīng)value。通過用pop(key)方法牲剃,要刪除一個key遣疯。
????注意,dict的key必須是不可變對象。
set
????set和dict類似缠犀,也是一組key的集合数苫,但不存儲value。重復(fù)元素在set中自動被過濾辨液。
????EG:?s = set([1,2,3])
????通過add(key) remove(key)方法可以添加或刪除元素到set中虐急。
? ? set可以看成數(shù)學(xué)意義上的無序和無重復(fù)元素的集合,因此滔迈,兩個set可以做數(shù)學(xué)意義上的交集s1 & s2止吁、并集s1 | s2等操作。