1.python3基本數(shù)據(jù)結(jié)構(gòu)
1.1 數(shù)字類(lèi)型
數(shù)字類(lèi)型(number)分為布爾霎挟、整數(shù)柬焕、浮點(diǎn)數(shù)和復(fù)數(shù)。
布爾類(lèi)型(bool)為T(mén)rue(1)和False(0)的組合梭域。
bool1=True
bool2=False
注意:在Python2中是沒(méi)有布爾型的斑举,它用數(shù)字0表示False,用1表示True病涨。到Python3中富玷,把True和False定義成關(guān)鍵字了,但它們的值還是1和0既穆,它們可以和數(shù)字相加赎懦。
- 整數(shù)類(lèi)型(int)為整數(shù)
int=20
- 浮點(diǎn)數(shù)類(lèi)型(float)為浮點(diǎn)數(shù)。
float=2.2
- 復(fù)數(shù)類(lèi)型(complex)為復(fù)數(shù)幻工,復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型
complex=1+4j
1.2 數(shù)字類(lèi)型的方法
- 運(yùn)算
# 數(shù)字類(lèi)型運(yùn)算
a = 1
b = 3
print(a + b)#加法
print(a - b)#減法
print(a / b)#除法
print(a * b)#乘法
print(a // b)#整除
print(a % b)#求余
print(a ** b)#乘方
輸出為:
4
-2
0.3333333333333333
3
0
1
1
在混合計(jì)算時(shí)励两,Python會(huì)把整型轉(zhuǎn)換成為浮點(diǎn)數(shù)。 例如:
a=1.0
b=2
print(a+b)
結(jié)果就是3.0了囊颅。
2.python3容器
- python的容器分為序列当悔、映射以及集合。
2.1序列
- 序列(sequence)中的每個(gè)元素都有自己的編號(hào)踢代。序列包括列表盲憎、元組、字符串等胳挎。
2.1.1 列表和元組
- 列表和元組都是一種類(lèi)似的序列饼疙,區(qū)別是列表可以修改,元組不能修改串远。
- 列表(list)宏多,使用[,]建立列表
list1=['hello','world']
- 元組(tuple),使用(,)建立元組,只含一個(gè)值的元組,必須加個(gè)逗號(hào)(,)澡罚;
t1=(1,2)
t2=1,2,3
t3=(1,)
2.1.2 字符串
- Python中的字符串用單引號(hào)(')伸但、雙引號(hào)(")或三引號(hào)(三個(gè)單引號(hào)''')括起來(lái)。而單雙引號(hào)是為了去掉轉(zhuǎn)義字符\的留搔。字符串不能被改變更胖,即不能向字符串某位賦值。
#這種情況下是一樣的
a='str'
b="str"
c='''str'''
- 單引號(hào)
# 這種情況下不需要轉(zhuǎn)義字符\
a='我"們"這個(gè)'
- 雙引號(hào)
# 這種情況下不需要轉(zhuǎn)義字符\
a="let's go"
- 三引號(hào)
# 這種情況下不需要轉(zhuǎn)義字符\
a='''我們"這"'個(gè)' '''
# 這種情況下保留換行
a='''我
換
行
了'''
2.1.2.1 字符串方法
- 字符串不發(fā)生轉(zhuǎn)義,使用r表示原始字符串
str="run\ner"
#這樣會(huì)輸出run
# er
str=r"run\ner"
#這樣會(huì)輸出run\ner
- 格式化
1.字符串格式化使用字符串格式化操作符即百分號(hào)%來(lái)實(shí)現(xiàn)隔显。
str1='Hello,%s' % 'world.'
2.格式化操作符的右操作數(shù)可以是任何東西却妨,如果是元組,則如下:
strs=('Hello','world') #元組
str1='%s,%s' % strs
3.對(duì)數(shù)字進(jìn)行格式化處理,通常需要控制輸出的寬度和精度:
str1='%.2f' % 3.1415926 #精度2
str1='%10f' % 3.1415926 #字段寬10
2.1.3 序列通用方法
- 索引
索引值以 0 為開(kāi)始值括眠,-1 為從末尾的開(kāi)始位置彪标。
str1='Hello'
nums=[1,2,3,4]
t1=(123,234,345)
print(str1[0])
print(nums[1])
print(t1[2])
輸出為:
H
2
345
- 分片
分片操作用來(lái)訪問(wèn)一定范圍內(nèi)的元素。分片通過(guò)冒號(hào)相隔的兩個(gè)索引來(lái)實(shí)現(xiàn)掷豺。
nums='1234567890'
print(nums)
print(nums[1:5])
print(nums[1:])
print(nums[-3:-1])
print(nums[-3:])
print(nums[:]) #復(fù)制整個(gè)序列
輸出為:
1234567890
2345
234567890
89
890
1234567890
默認(rèn)步長(zhǎng)為1捞烟,可以對(duì)步長(zhǎng)進(jìn)行調(diào)節(jié)薄声。
print(nums)
print(nums[0:10]) # 默認(rèn)步長(zhǎng)為1 等價(jià)于nums[1:5:1]
print(nums[0:10:2]) # 步長(zhǎng)為2
print(nums[0:10:3]) # 步長(zhǎng)為3
print(nums[0:10:0]) #步長(zhǎng)為0
print(nums[-3:-1:-1]) # 步長(zhǎng)為-2
輸出為:
1234567890
1234567890
13579
1470
- 序列相加
序列相加只能相同類(lèi)型的序列進(jìn)行相加。
str1='Hello'
str2='world'
print(str1+str2)
lista=[1,2]
listb=[3,4]
print(lista+listb)
輸出為:
Helloworld
[1, 2, 3, 4]
- 乘法
使用*符號(hào)對(duì)序列進(jìn)行疊加题画。
str1='Hello'
print(str1*2)
輸出為:
HelloHello
- 成員資格
in運(yùn)算符會(huì)用來(lái)檢查一個(gè)對(duì)象是否為某個(gè)序列(或者其他類(lèi)型)的成員(即元素):
str1='Hello'
print 'H' in str1
print 'h' in str1
輸出為:
True
False
- 長(zhǎng)度默辨、最小最大值
通過(guò)內(nèi)建函數(shù)len、max和min可以返回序列中所包含元素的數(shù)量苍息、最大和最小元素缩幸。
str1='Hello'
print len(str1)
print max(str1)
print min(str1)
輸出為:
5
o
H
2.2 字典
- 字典是一種映射類(lèi)型,字典用"{ }"標(biāo)識(shí)竞思,它是一個(gè)無(wú)序的鍵(key) : 值(value)對(duì)集合表谊。
鍵(key)必須使用不可變類(lèi)型,即數(shù)字衙四、字符串铃肯、元組。
在同一個(gè)字典中传蹈,鍵(key)必須是唯一的押逼。
代碼如下:
a={}
a[1]=1
a['a']='a'
a[(1,2)]=1
a[2]=set([1,2])
print(a)
b={'2':'a',3:3}
print(b)
輸出為:
{(1, 2): 1, 1: 1, 2: {1, 2}, 'a': 'a'}
{3:3,'2':'a'}
2.3 集合
- 集合(set)是一個(gè)無(wú)序不重復(fù)元素的序列。
會(huì)自動(dòng)刪除重復(fù)元素惦界。
代碼如下:
seta=set([1,2,3])
setb={2,3}
print(seta,setb)
輸出為:
{1, 2, 3} {2, 3}
2.3.1 集合方法
a={1,2,3}
b={2,3,4}
print(a - b) # a和b的差集
print(a | b) # a和b的并集
print(a & b) # a和b的交集
print(a ^ b) # a和b中不同時(shí)存在的元素
輸出為:
{1}
{1, 2, 3, 4}
{2, 3}
{1, 4}
3.總結(jié)
- 總結(jié)速查表格
類(lèi)型 | 子類(lèi)型 | 構(gòu)建方式 | 表達(dá)含義 |
---|---|---|---|
數(shù)字類(lèi)型 | bool布爾類(lèi)型 | True False | 判定True挑格、False |
數(shù)字類(lèi)型 | int類(lèi)型 | a=2 | 整數(shù) |
數(shù)字類(lèi)型 | float | a=2.0 | 浮點(diǎn)數(shù) |
數(shù)字類(lèi)型 | complex | a=1+2j | 復(fù)數(shù) |
容器-序列 | 列表list | a=[1,2] | 可變的序列 |
容器-序列 | 元組tuple | a=(1,2) | 不可變的序列 |
容器-序列 | 字符串string | a='abcd' | 方便使用的序列 |
容器-字典 | 字典類(lèi)型dict | a={'1':'a'} | 主鍵唯一的鍵值對(duì) |
容器-集合 | 集合類(lèi)型set | a=set([a,b])或a={a,b} | 元素不重復(fù)的集合 |