Python內(nèi)置類型及常見問題
python的內(nèi)置數(shù)據(jù)類型非常豐富,大致可以分為五類:None、數(shù)字類型、序列類型、映射類型和集合類型。下面我將分別對他們進(jìn)行介紹,做個總結(jié)以備以后查看。下面的表列出了各個類別下的具體數(shù)據(jù)類型。*注:本文所講的內(nèi)容都是基于python2的,python3會有些不同*。
1.None
None表示一個null對象,這是一個空對象,如果一個函數(shù)沒有返回值,則返回null對象。None沒有任何屬性,在布爾表達(dá)式中表示False。2.數(shù)字類型
除了布爾類型外,所有數(shù)字類型都是有符號的。整數(shù)的表示范圍在-2147483648和2147483647之間,長整數(shù)可以表示任意長度,只受可用內(nèi)存大小的限制。#整數(shù)i = 123i = int(123)#長整數(shù)l = 123Ll = long(123)
浮點(diǎn)數(shù)是雙精度類型(64bit),和c語言中double相同,數(shù)值范圍-1.7*10(-308)到1.7*10(308)。
f = 12.3f = float(12.3)
復(fù)數(shù)使用一對浮點(diǎn)數(shù)表示,分為實部和虛部,使用real和imag訪問,虛部后綴j或J。
c = 1.0 + 2.3jc = complex(1.0, 2.3)print c.real,c.imag
布爾值只有True和False兩個值,分別映射為整數(shù)1和0。
b = Falseb = bool(True)
2.1.數(shù)字運(yùn)算
除了布爾類型外,int、long、float和complex都可以使用的運(yùn)算為:加、減、乘、除、整除、冪運(yùn)算和取余。下面分別舉例說明。>>> 1 + 2 # 加法3>>> 1 - 2 # 減法-1>>> 2 * 3 # 乘6>>> 2 / 4 # 整數(shù)除0>>> 2 / 4.0 # 浮點(diǎn)除0.5>>> 3 // 2.0 # 整除1.0>>> 2 % 3 # 取余2>>> 3 ** 2 # 冪運(yùn)算 =3^29
對于整數(shù)還可以進(jìn)行位運(yùn)算,共有6種位運(yùn)算:取反(~)、左移(<<)、右移(>>)、異或(^)、按位或(|)、按位與(&)。
>>> ~1 # 1取反后為-2的補(bǔ)碼-2>>> 8 << 1 # 左移16>>> 8 >> 2 # 右移2>>> 1 ^ 3 # 01 和 11 異或得到10,就是22>>> 1 | 3 # 01 和 11 位或得到11,就是33>>> 1 & 3 # 01 和 11 位與得到01,就是11
布爾類型可以通過布爾表達(dá)式取值,布爾比較運(yùn)算符有6種:小于(<)、小于等于(<=)、大于(>)、大于等于(>=)、等于(==)、不等于(!=)。
>>> 1 < 2True>>> 1 <= 2True>>> 1 > 2False>>> 1 >= 2False>>> 1 == 2False>>> 1 != 2True
對于布爾類型還可以進(jìn)行邏輯運(yùn)算,有3種運(yùn)算:邏輯非(not)、邏輯非或(or)、邏輯與(and)。
>>> not TrueFalse>>> True or FalseTrue>>> True and FalseFalse
2.2.常用數(shù)字類型函數(shù)
abs():返回給定對象的絕對值。>>> abs(-2)2
divmod():把除法和取余運(yùn)算結(jié)合起來,返回一個包含商和余數(shù)的元組。
>>> divmod(10, 3)(3, 1)
pow():兩個參數(shù),冪運(yùn)算。三個參數(shù),乘方后取余。
>>> pow(2, 5),pow(2, 5, 10)(32, 2)
round():四舍五入
>>> round(3.4),round(3.6)(3.0, 4.0)
floor():向下取整, ceil():向上取整, sqrt():開方, 需要math模塊。
>>> from math import floor,ceil,sqrt>>> floor(3.6),ceil(3.6),sqrt(9)(3.0, 4.0, 3.0)
conjugate():復(fù)數(shù)取共軛
>>> c = 2 + 3j>>> c.conjugate()(2-3j)
3.序列類型
序列表示索引為非負(fù)數(shù)的有序?qū)ο蠹?,包括字符串、列表和元組。字符串是字符的序列,列表和元組是任意對象的序列。字符串和元組是不可變的,而列表可以插入、刪除和替換。所有序列支持迭代。3.1.字符串
創(chuàng)建一個字符串很簡單,但表示字符串的方法有很多。s = 'string's = "string" # 和上面單引號一樣s = '''string''' # 三引號之間的內(nèi)容都被保留,用于多行輸入s = r"string" # 原生字符,關(guān)掉字符串中的轉(zhuǎn)義。s = u"string" # unicode字符串
字符串的方法很多,但不會改變字符串里的內(nèi)容,常用的如下表所示。
>>> "Here is {0},I'm {name}.".format("wuyuans.com", name="wuyuan")"Here is wuyuans.com,I'm wuyuan"
3.2.列表和元組
列表的內(nèi)容可變,可以包含任意對象,使用中括號表示。元組的內(nèi)容不可變,可以包含任意對象,使用圓括號表示。
l = [1, 2, 3, '4', '5'] # 列表l = list((1, 2, 3, '4', '5'))t = (1, 2, 3, '4', '5') # 元組t = tuple("1234")
列表的方法主要用于改變里面的內(nèi)容,下面列出列表常用的方法。
>>> l = [1, 2, 3, 4, 5]>>> del l[1]>>> l[1, 3, 4, 5]
3.3.序列通用操作
所有序列都可以通過索引來訪問,第一個元素的索引為0,-1為最后一個元素,-2倒數(shù)第二個,一次類推。切片操作:指定索引范圍,返回相應(yīng)的子序列。
還有一些常用的,如下所示
>>> t = (1, 2, 3, 4, 5)>>> l = [1, 2, 3, 4, 5]>>> t[0]1>>> t[1:4] # 索引1~4(2, 3, 4)>>> t[1:4:2] # 索引1~4,步進(jìn)為2(2, 4)>>> len(t) # 序列長度5>>> max(t) # 最大值5>>> min(t) # 最小值1>>> sum(t) # 序列求和15
3.4.xrange()對象
xrange()對象比較特殊,他表示一個整數(shù)范圍,只有訪問它時才會計算他的值,所以切片操作是不能用于xrange對象的。xrange對象由xrange([i, ] j [, stride])函數(shù)創(chuàng)建,i為起始值,stride為步進(jìn)值。>>> x = xrange(1,10,2)>>> for i in x: print i 13579
4.映射類型
字典(dict)是python為唯一的內(nèi)置映射類型,任何不可變對象都可以用作字典的鍵值,如字符串、數(shù)字、元組等。字典使用大括號表示,鍵和值之間用冒號分割,各個鍵值間用逗號隔開。映射對象是無序的。d = dict((['name', 'wuyuan'], ['age', 23]))d = {'name': 'wuyuan', 'blog': 'wuyuans.com', 'age': 23}d['school'] = 'HDU' # 添加一項
字典的常用方法和操作

#使用鍵歷遍for i in d: print i,d[i]#使用鍵值歷遍for k,v in d.items(): print k,v
5.集合類型
集合是唯一項的無序集,集合不提供索引或切片操作,集合的長度可變,但放入里面的必須是不可變的。集合分為兩種:可變集合(set)和不可變集合(frozenset)。s = set([1, 2, 3])fs = frozenset([1, 2, 3])
集合通用方法和操作
python內(nèi)置類型常見問題
python基本內(nèi)置數(shù)據(jù)類型有哪些?
一些基本數(shù)據(jù)類型,比如:整型(數(shù)字)、字符串、元組、列表、字典和布爾類型。隨著學(xué)習(xí)進(jìn)度的加深,大家還會接觸到更多更有趣的數(shù)據(jù)類型,python初學(xué)者入門時先了解這幾種類型就可以了。
基本內(nèi)置數(shù)據(jù)類型對應(yīng)符號?
1)整型——int——數(shù)字
python有5種數(shù)字類型,最常見的就是整型int。例如:1234、-1234
2)布爾型——bool——用符號==表示
布爾型是一種比較特殊的python數(shù)字類型,它只有True和False兩種值,它主要用來比較和判斷,所得結(jié)果叫做布爾值。例如:3==3 給出True,3==5給出False
3)字符串——str——用' '或" "表示
例如:'www.phpcnpython.com'或者"hello"
4)列表——list——用[ ]符號表示
例如:[1,2,3,4]
5)元組——tuple——用( )符號表示
例如:('d',300)
6)字典——dict——用{ }符號表示
例如:{'name':'coco','country':'china'}
Python基本數(shù)據(jù)類型中哪些可變,哪些是不可變?
python可變數(shù)據(jù)類型:列表list[ ]、字典dict{ }
python不可變數(shù)據(jù)類型:整型int、字符串str' '、元組tuple()