????:輸入與輸出>>> print('Name: %s, score: %d' % ('Jack', 89)) Name: Jack, score: 89 >>> print('Hello',
輸入與輸出
>>> print('Name: %s, score: %d' % ('Jack', 89)) Name: Jack, score: 89 >>> print('Hello', 'world!') #逗號(hào)連接 Hello world! a = raw_input("a:") #捕獲原始輸入,返回字符串 b = input("b:") #數(shù)字或表達(dá)式,不支持輸入字符串,返回?cái)?shù)字類型的數(shù)值
數(shù)據(jù)類型
空(None)
表示該值是一個(gè)空對(duì)象,空值是Python里一個(gè)特殊的值,用None表示。None不能理解為0,因?yàn)?是有意義的,而None是一個(gè)特殊的空值。
布爾類型(Boolean)
一個(gè)布爾值只有True、False兩種值,可以用and、or和not運(yùn)算
python 中的and從左到右計(jì)算表達(dá)式,若所有值均為真,則返回最后一個(gè)值,若存在假,返回第一個(gè)假值。or也是從左到有計(jì)算表達(dá)式,返回第一個(gè)為真的值。
>>>'a'and'b' 'b' >>>''and'b' '' >>>'a'or'b' 'a' >>>'' or 'b' 'b'
整型(Int)
在Python內(nèi)部對(duì)整數(shù)的處理分為普通整數(shù)和長(zhǎng)整數(shù),普通整數(shù)長(zhǎng)度為機(jī)器位長(zhǎng),通常都是32位,超過(guò)這個(gè)范圍的整數(shù)就自動(dòng)當(dāng)長(zhǎng)整數(shù)處理,而長(zhǎng)整數(shù)的范圍幾乎完全沒(méi)限制Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在程序中的表示方法和數(shù)學(xué)上的寫法一模一樣,例如:1,100,-8080,0,等等。
浮點(diǎn)型(Float)
在運(yùn)算中,整數(shù)與浮點(diǎn)數(shù)運(yùn)算的結(jié)果是浮點(diǎn)數(shù)。整數(shù)和浮點(diǎn)數(shù)在計(jì)算機(jī)內(nèi)部存儲(chǔ)的方式是不同的,整數(shù)運(yùn)算永遠(yuǎn)是精確的(除法難道也是精確的?是的!),而浮點(diǎn)數(shù)運(yùn)算則可能會(huì)有四舍五入的誤差。
字符串(String)
Python字符串即可以用單引號(hào)也可以用雙引號(hào)括起來(lái),甚至還可以用三引號(hào)括起來(lái)字符串是以''或""括起來(lái)的任意文本,比如'abc',"xyz"等等。
>>>'I\'m \"OK\"!' #轉(zhuǎn)義字符 \ I'm "OK"!
>>> print '\\\t\\' \ \ >>> print r'\\\t\\' #用r''表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義 \\\t\\
如果字符串內(nèi)部有很多換行,用\n寫在一行里不好閱讀,為了簡(jiǎn)化,Python允許用'''...'''的格式表示多行內(nèi)容,可以自己試試:
>>> print '''line1 ... line2 ... line3''' line1 line2 line3
上面是在交互式命令行內(nèi)輸入,如果寫成程序,就是:
print '''line1 line2 line3'''
列表(List)
用符號(hào)[]表示列表,中間的元素可以是任何類型,用逗號(hào)分隔。list類似C語(yǔ)言中的數(shù)組,用于順序存儲(chǔ)結(jié)構(gòu)
>>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] >>> classmates[0] 'Michael' >>> classmates.append('Adam') #可以往list中追加元素到末尾 >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam'] >>> classmates.insert(1, 'Jack') #把元素插入到指定的位置,比如索引號(hào)為1的位置 >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
元組(Tuple)
元組是和列表相似的數(shù)據(jù)結(jié)構(gòu),但它一旦初始化就不能更改,速度比list快,同時(shí)tuple不提供動(dòng)態(tài)內(nèi)存管理的功能,需理解一下規(guī)則:tuple可以用下標(biāo)返回一個(gè)元素或子tuple
表示只含有一個(gè)元素的tuple的方法是:(d,)后面有個(gè)逗號(hào),用來(lái)和單獨(dú)的變量相區(qū)分
>>> t = (1,) >>> t (1,)
集合(Set)
集合是無(wú)序的,不重復(fù)的元素集,類似數(shù)學(xué)中的集合,可進(jìn)行邏輯運(yùn)算和算術(shù)運(yùn)算
>>> s = set([1, 1, 2, 2, 3, 3]) >>> s {1, 2, 3}
字典(Dict)
字典是一種無(wú)序存儲(chǔ)結(jié)構(gòu),包括關(guān)鍵字(key)和關(guān)鍵字對(duì)應(yīng)的值(value)。字典的格式為:dictionary = {key:value}。關(guān)鍵字為不可變類型,如字符串、整數(shù)、只包含不可變對(duì)象的元組,列表等不可作為關(guān)鍵字。如果列表中存在關(guān)鍵字對(duì),可以用dict()直接構(gòu)造字典
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> d['Michael'] 95
如果key不存在,dict就會(huì)報(bào)錯(cuò):
>>> d['Thomas'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Thomas'
要避免key不存在的錯(cuò)誤,有兩種辦法,一是通過(guò)in判斷key是否存在:
>>> 'Thomas' in d False
二是通過(guò)dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
>>> d.get('Thomas') >>> d.get('Thomas', -1) -1
要?jiǎng)h除一個(gè)key,用pop(key)方法,對(duì)應(yīng)的value也會(huì)從dict中刪除:
>>> d.pop('Bob') 75 >>> d {'Michael': 95, 'Tracy': 85}
類型轉(zhuǎn)換
常用轉(zhuǎn)換
int(x) #將x轉(zhuǎn)換為一個(gè)整數(shù) float(x ) #將x轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù) str(x) #將對(duì)象x轉(zhuǎn)換為字符串 tuple(s) #將序列s轉(zhuǎn)換為一個(gè)元組 list(s) #將序列s轉(zhuǎn)換為一個(gè)列表 repr(x) #將對(duì)象x轉(zhuǎn)換為表達(dá)式字符串 eval(str) #用來(lái)計(jì)算在字符串中的有效Python表達(dá)式,并返回一個(gè)對(duì)象 chr(x) #將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)字符 unichr(x) #將一個(gè)整數(shù)轉(zhuǎn)換為Unicode字符 ord(x) #將一個(gè)字符轉(zhuǎn)換為它的整數(shù)值 hex(x) #將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)十六進(jìn)制字符串 oct(x) #將一個(gè)整數(shù)轉(zhuǎn)換為一個(gè)八進(jìn)制字符串 complex(real [,imag]) #創(chuàng)建一個(gè)復(fù)數(shù)