python 基本數據類型
Python 的基本數據包括以下幾種:
數字
Python3 支持 int、float、bool、complex(復數)。
在Python 3里,只有一種整數類型 int,表示為長整型,沒有 python2 中的 Long。
布爾值
#非空即真,非零即真。
x =0 #在整型中除了0是False,負數以及正數都是True y =[] #空列表為False,反之為True z='' #空字符串為False,反之為True print(bool(x),bool(y),bool(z))
False False False
字符型 String
# 常用的字符串方法: a = '\n 字 符 串 \n' c= a.strip() #默認去掉字符串前后的空格和換行符 c= a.lstrip() #默認去掉字符串前面的空格和換行符 c= a.rstrip() #默認去掉字符串后面的空格和換行符 a = 'pythton' print(a.count('t')) print(a.index('t')) #找的第一個的下標 print(a.find('t')) print(a.replace('t','T')) print(a.isdigit()) #是否全是數字 print(a.islower())#是否全都是小寫字母 print(a.isupper())#是否全都是大寫字母 print(a.isalpha())#是否全都是漢字或者字母 print(a.isalnum())#是否為漢字或者數字或者字母,只要特殊字符就返回Fales,判斷特殊字符 print(a.upper()) print(a.lower()) print(a.startswith('test')) #以xx開頭 print(a.endswith('.xls')) #以xx結尾
a.zfill(9) #在字符串 a 前補0,使其字符個數達到 9
#以下兩個方法最牛逼 1.列表轉換成字符串 ''.join('') #連接字符串,只能對列表進行操作,把列表中的元素連接成一個字符串。 l = ['a','b','c','d'] res = ''.join(l) 2.把字符串轉換成列表 #split(),只能對字符串進行操作,根據某個字符(字符串),分割字符串,變成list name = 'aaa,bbb,ccc,ddd' name_list = name.split(',') print(name_list) #大小寫字母、數字、特殊字符 import string print(string.ascii_letters)#所有的大、小寫字母 print(string.ascii_lowercase)#所有的小寫字母 print(string.ascii_uppercase) #所有的大寫字母 print(string.digits) #所有的數字 print(string.punctuation) #所有的特殊字符 #format方法:實現變量名指定傳輸 user= 'AAA' sex = '男' age = 18 addr = '深圳' money = '一千萬' car = '勞斯萊斯' #對應插入方法: words = 'insert into user values ("%s","%s","%s","%s""%s","%s")' %(user,sex,age,addr,money,car) print(words) #format方法 sql = 'insert into user values ("{name}","{sex}","{age}","{qian}","{che}","{addr}")' new_sql = sql.format(age=age,che=car,name=user,sex=sex,qian=money,addr=addr) print(new_sql)
列表
(列表: list / 數組 / array),編號叫下標 / 索引 / 角標
最前面一個元素的下標時0,最后面一個元素的下標是 -1
cities=[] #定義一個空的列表 #增加元素 cities.append('北京') #在列表末尾增加一個元素 cities.insert(0,'上海') #在指定的位置插入一個元素,一次只能加一個。
#刪除元素 cities.pop(-1) #刪除指定的元素,傳下標 cities.remove('北京') #刪除指定的元素,傳元素 cities.clear() #清空列表 del cities[-1] #刪除指定位置的元素,傳下標
#修改 cities[1] = '南京' #指定某一個下標,直接修改即可,指定下標不能超出已有下標范圍。
#查詢 print(cities) #打印整個列表 print(cities[0]) #打印指定位置的元素 print(cities.index('廣州') #獲取元素的下標,如果元素不存在,則報錯 print(cities.count('廣州') #查看元素在list 出現了幾次 print(cities.reverse()) #返回None,但把列表反轉了要重新print(cities)才能看到結果,如下: cities.reverse() #將cities 反轉 print(cities) #打印cities cities.sort() #默認升序排序 cities.sort(reverse=True) #降序排序,按數字或字母排序 print(cities1 + cities2) #合并list #切片,切片是list取值的一種方式 print(nums[1:3]) #切片只顧頭不顧尾,即取下標1到3(不包括3)。 print(nums[1:]) #如果從某個下標開始取到末尾,末尾的下標可以省略 print(nums[:2]) #如果是從頭開始取,取到后面某個下標(不包括)結束,開頭的下標可以不寫 print(nums[:]) #取出全部
列表排序的3種方法:
list.reverse()
random.shuffle(list)
list.sort()
#循環 for i in range(1,4): #range()也是顧頭不顧尾 print(i) #打印結果:1、2、3 lis= list(range(1,21)) #類型轉換為list print(lis) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
#步長 lis= list(range(1,21)) print(lis[1:10:2]) #步長,隔2個取一個數字,到第9個下標 lis= list(range(1,21)) print(lis[::-1]) #如果步長時正數的話,就從左到右取值,如果步長為負數,則從右到左取值。相當于把列表反轉。與.reverse()的區別是:.reverse()改變了列表的內容。 #當步長為負數時,a:b:-1,a(正)必須大于b(正),否則取值為空 例如: lis= list(range(0,21)) print(lis) print(lis[21:10:-1]) #從下標21到下標10取值,但不包含10的下標:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11] print(lis[:18:-1]) #從下標最大到下標18取值,但不包含18的下標:[20, 19] print(lis[0::-1]) #從下標0到最小下標取值,只取0的下標:[0] print(lis[::-1]) #從下標最大取到最小:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0] s = 'abcdefghi' s[3] ='h' #字符串變量不可以修改,報錯:TypeError: 'str' object does not support item assignment lists = ['AAA','BBB','CCC','DDD'] for name in lists: #循環讀取數組中的每一個元素 print(name) words = 'marry,lily,joker' for name in words: #循環讀取字符串中的每一個字符 print(name) # for 循環在循環可迭代對象的時候,每次循環的是里面的每一個元素。 #如果是一個多維數組,則要判斷類型。 lists = ['AAA','BBB','CCC','DDD',[1,2,3,4]] for name in lists: if type(name) == list: for i in name: print(i) #打印列表中的列表:1 2 3 4
元組
元組也是一個list,它和 list 的區別是,元組里面的元素無法修改t = ('aaa','bbb','ccc','ddd','ee') print(type(t)) #<class 'tuple'> print(t[:3]) #元組的切片:('aaa', 'bbb', 'ccc') print(t[4:]) # ('ee',) 輸出在元素后面加一個逗號,代表元組
#元組只有這兩種方法,元組不能被修改。
print(t.index('aaa')) #找到元素的下標 print(t.count('aaa')) #找到元素的個數 t2 =(1,2,4) words = (1) words2 = ('abc') print('t2',type(t2)) #t2 <class 'tuple'> print('words',type(words)) #words <class 'int'> print('words2',type(words2)) #words2 <class 'str'> #如果元組里面只有一個元素的話,那么你必須在這個元素后面加一個逗號,才能成為元組。
字典
字典是 key - vaule 的形式1. 取數據方便
2. 速度快
ifos ={'name':'AAA','sex':'男','age':18}
# 查:字典取值就這兩種方式:
print(ifos.get('name')) #如果key不存在,則返回None
print(ifos['name']) #如果key不存在,則報錯
print(ifos.get('aaa','phone')) #指定如果取不到aaa這個key時,默認phone,這是get的另一種方法
#增
ifos['phone']=1852003000 #字典是無序的,添加的值不一定在最后,如果key存在,則是修改
ifos.setdefault('height','BBB') #增加字典的另一種方式
#改
ifos['name']='YYYY' #如果key已存在,用這種方式可以修改name的值,僅此一種
ifos.setdefault('name','EBB') #如果key已存在,用這種方式不能修改name的值
#刪除
ifos.pop('age') #指定key來刪除
ifos.popitem() #隨機刪除一個key
del ifos['phone'] #指定key來刪除
ifos.clear() #清空字典
字典內置的方法:
print(ifos.values()) #獲取到字典所有的value:dict_values(['AAA', '男', 18]:
print(ifos.keys()) #獲取到字典的所有的key:dict_keys(['name', 'sex', 'age'])
print(ifos.items()) #獲取到字典的所有的k-v:dict_items([('name', 'AAA'), ('sex', '男'), ('age', 18)])
#循環
for p in people:
print(p) #循環字典時,打印的時字典的key
for k,v in people.items():
print(k,'=====>',v) #循環時同時取key和value
for k in people.items():
print(k) #循環打印出每一個key的所有值
#TEAM 是一個字典,它的值也是一個字典,如何取值?
TEAM = {
'a': {'A': 'B'},
'b': {'C': 'D'},
}
TEAM['b'].setdefault('X','Y') #在key:b 的value中增加k-v
print(TEAM)
{'a': {'A': 'B'}, 'b': {'C': 'D', 'X': 'Y'}}
for v in TEAM.values(): #打印出values
print(v)
{'A': 'B'}
{'C': 'D', 'X': 'Y'}
for k in TEAM.items(): #打印出TEAM的k-v
print(k)
('a', {'A': 'B'})
('b', {'C': 'D', 'X': 'Y'})
for k,v in TEAM.items(): #打印出k,v
print(k,v)
a {'A': 'B'}
b {'C': 'D', 'X': 'Y'}
for i in TEAM.keys(): #
for k,v in TEAM[i].items(): #
print(i,k,v)
a A B
b C D
b X Y
集合 set
#集合的特點:天生去重,集合也是無序的。 s = set() #定義一個空集合 s2 = set('12344455667788') s3 = {1,1,3,4,5,6,7} s4 = {'1','2','3','4'} print(s2) #集合還可做關系測試:交集、并集、差集,只有集合才可以做交集、并集、差集操作,其他類型會報錯。 print(s3 & s2) #打印為:set(),是因為 s2 中都是字符,s3 是整型。 print(s4 & s2) #取交集 print(s4.intersection(s2)) #取交集 #并集 print(s2 | s3) print(s2.union(s3)) #差集,取一個集合存在,另一個不存在的元素 c1 = {1,2,3} c2 = {1,4,6} print(c1-c2) #{2, 3} print(c2-c1) #{4, 6} print(c2.difference(c1)) #{4, 6} #對稱差集,去掉兩集合里面都存在的,取不重復的。 print(c1^c2) #{2, 3, 4, 6} print(c1.symmetric_difference(c2)) c1.add('ss') #加元素 print(c1) c1.pop() #隨機刪一個元素 print(c1) c1.remove('ss') #指定刪除 print(c1) c1.update({5,6,7}) #把另一個集合加進去 print(c1) #也可以用isdisjoint這個方法判斷交集。

浙公網安備 33010602011771號