Day2-数据类型
數據類型與內置方法
數據類型
- 數字
- 字符串
- 列表
- 字典
- 元組
- 集合
字符串
1.用途
用來描述某個物體的特征:姓名,性別,愛好等2.定義方式
變量名 = '字符串' 如:name = 'huazai'3.常用操作和內置方法
1.按索引取值:(只能取值,不能改變值)通過字符串的索引值可以取到對應位置的字符>>> name = 'huazai'>>> name[1]'u'>>> name[-1]'i'2.切片通過索引值的范圍進行取值>>> name = 'huazai'>>> name[0:3] #按范圍取值,默認步長為1,正向'hua'>>> name[-1:-4:-1] #逆向取值'iaz'>>> name[0:5:2] #按步長取值'haa'3.長度函數len()計算長度>>> name = 'huazai' #實質是調用name.__len__()>>> len(name)6 4.成員運算in 和not in>>> name = 'huazai'>>> 'a' in nameTrue>>> 'f' not in nameTrue>>> 'f' in nameFalse 5.移除空白strip、lstrip、rstrip默認移除字符串開頭和結尾處的空白>>> str1 = ' hua zai '>>> print(str1.strip())hua zai#字符串中間的空白并不會移除,常用在與讓用戶輸入內容時,對其進行處理。括號內可以指定移除的字符串>>> str1 = '***hua zai****'>>> print(str1.strip('*'))hua zai>>> print(str1.lstrip('*'))hua zai****>>> print(str1.rstrip('*'))***hua zai 6.切分splist將字符串按某種定義的符號進行拆分成列表>>> str1 = 'root:x:0:0::/root:/bin/bash'>>> print(str1.split(':'))['root', 'x', '0', '0', '', '/root', '/bin/bash']>>> print(str1.rsplit(':',1)) #從右開始切分,只切分一次['root:x:0:0::/root', '/bin/bash'] 7.lower,upper將字母變成大小寫>>> str1 = 'huazai'>>> print(str1.upper())HUAZAI>>> str2 = 'HuaZai'>>> print(str2.lower())huazai 8.startswith,endswith判斷字符串以什么開頭、什么結尾>>> str1 = 'huazai123'>>> print(str1.startswith('hua'))True>>> print(str1.startswith('123'))False>>> print(str1.endswith('123'))True 9.format的三種玩法常用在輸出的時候,不需要根據占位符的位置順序指定變量的順序,方便,也是常用的方法。>>> print('my name is {name},i am {age} old'.format(age=18,name='huazai'))my name is huazai,i am 18 old 10.join將字符串已某種符號隔開,可迭代的對象必須為字符串>>> print('*'.join(['my','name','is','huazai']))my*name*is*huazai11.replace將字符串1替換成字符串2,>>> str1 = 'huazai'>>> str2 = 'zai123'>>> print(str1.replace('zai',str2))huazai123>>> print(str1) #源字符串并不會被改變,因為字符串是不可變對象huazai可以指定替換次數>>> str1 = 'huazaizaizaizai'>>> str2 = 'zai123'>>> print(str1.replace('zai',str2,2))huazai123zai123zaizai 12.isdigit判斷一個字符串是否是數字>>> a = 'huazai'>>> print(a.isdigit())False 其他操作(了解部分):13.find,rfind,index,rindex,count find>>> str1 = 'huazai'>>> print(str1.find('a',1,5))2>>> print(str1.find('l',1,5)) #不存在返回-1-1 index>>> print(str1.index('a'))2>>> print(str1.index('l')) #不存在會報錯Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: substring not found count>>> print(str1.count('a'))2 14.center,ljust,rjust,zfill>>> str1 = 'huazai'>>> print(str1.center(50,'*'))**********************huazai**********************>>> print(str1.ljust(50,'*'))huazai********************************************>>> print(str1.rjust(50,'*'))********************************************huazai>>> print(str1.rjust(50))huazai>>> print(str1.zfill(50))00000000000000000000000000000000000000000000huazai 15.expandtabs將tab鍵轉換成幾個空格>>> str1 = 'hua\tzai' >>> print(str1)hua zai>>> print(str1.expandtabs())hua zai>>> print(str1.expandtabs(1))hua zai 16.captalize,swapcase,title>>> str1 = 'huA Zai'>>> print(str1.capitalize())Hua zai>>> print(str1.swapcase())HUa zAI>>> print(str1.title())Hua Zai 17.is數字系列#在python3中num1=b'4' #bytesnum2=u'4' #unicode,python3中無需加u就是unicodenum3='四' #中文數字num4='Ⅳ' #羅馬數字#isdigt:bytes,unicodeprint(num1.isdigit()) #Trueprint(num2.isdigit()) #Trueprint(num3.isdigit()) #Falseprint(num4.isdigit()) #False#isdecimal:uncicode#bytes類型無isdecimal方法print(num2.isdecimal()) #Trueprint(num3.isdecimal()) #Falseprint(num4.isdecimal()) #False#isnumberic:unicode,中文數字,羅馬數字#bytes類型無isnumberic方法print(num2.isnumeric()) #Trueprint(num3.isnumeric()) #Trueprint(num4.isnumeric()) #True 18.is其他print('===>')name='huazai'print(name.isalnum()) #字符串由字母或數字組成print(name.isalpha()) #字符串只由字母組成print(name.isidentifier())print(name.islower())print(name.isupper())print(name.isspace())print(name.istitle())列表
1.用途
用來描述同一屬性可以有多種,如:愛好,課程等2.定義方式
habbies=['basketball','read','movie','music'] 或者 L= list('basketball','read','movie','music')3.常用操作和內置方法
1.必會操作按索引存取值>>> habbies=['basketball','read','movie','music']>>> habbies[0]'basketball'>>> habbies[-1]'music'>>> habbies[2]='girls'>>> habbies['basketball', 'read', 'girls', 'music']切片(與字符串類似)>>> habbies=['basketball','read','movie','music']>>> habbies[0:3]['basketball', 'read', 'movie']>>> habbies[0:4:2]['basketball', 'movie']>>> habbies[-1:0:-1]['music', 'movie', 'read']長度len>>> habbies=['basketball','read','movie','music']>>> len(habbies)4成員運算in、not in>>> habbies=['basketball','read','movie','music']>>> habbies=['basketball','read','movie','music']>>> 'read' in habbiesTrue>>> 'girl' not in habbiesTrue追加append>>> habbies=['basketball','read','movie','music']>>> habbies.append('girls')>>> habbies['basketball', 'read', 'movie', 'music', 'girls']刪除del、remove>>> habbies['basketball', 'read', 'movie', 'music', 'girls']>>> habbies.pop()'girls'>>> habbies>>>['basketball', 'read', 'movie', 'music']>>>habbies=['basketball','read','movie','music']>>>habbies.remove('movie')>>>print(habbies)>>>['basketball', 'read', 'music']循環:habbies=['basketball','read','movie','music']1. for item in habbies:print(item)2.i=0while i <len(habbies):print(habbies[i])i+=1 熟悉內置方法: # pop:從尾部刪除元素 habbies.pop() habbies.pop()# extend:增加元素 habbies.extend('girls')# index:獲取元素的索引值 print(habbies.index('basketball')) # count:統計元素 print(habbies.count('read')) # clear:清空列表 habbies.clear() # copy:復制一份列表 L = habbies.copy() print(L) # insert:指定位置插入元素 habbies.insert(1,'girls') # reverse:反轉列表所有元素的順序 habbies.reverse() # sort:元素排序 print(habbies.sort())字典
1.作用
將多個值以key-value的形式保存,取值速度快2.定義
其中key是不可變類型(數字,字符串,元組),value可以是任意類型 user_info = {'name':'huazai','sex':'male','age':'18'} 或者 user_info = dict(name='huazai',sex='male',age=18) 或者 {}.fromkeys(('name','sex','age'),None)3. 常用操作
#常用操作 #存取值,按key存取 user_info = {'name':'huazai','sex':'male','age':'18'} print(user_info['name']) user_info['habbies']='girls' print(user_info)#長度 print(len(user_info)) print(user_info.__len__())#成員運算in、not inprint('name' in user_info) print('habbies' not in user_info)# 刪除 del user_info['name'] user_info.pop('name')# 鍵值對操作 keys() value() 鍵值對items print(user_info.keys()) print(user_info.values()) print(user_info.items())# 循環 for key in user_info:print(key,user_info[key])# 了解方法 # fromkey print(user_info.fromkeys('name'))# clear 清空字典 user_info.clear()#setdefault 如果key存在不會被覆蓋,見練習二 user_info.setdefault()# update 更新 d = {'name':'egon'} user_info.update(d) print(user_info)# get 不存在返回None print(user_info.get('habbies'))# copy L = user_info.copy() print(L)4.練習
#練習 #1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],將所有大于 66 的值保存至字典的第一個key中,將小于 66 的值保存至第二個key的值中#即: {'k1': 大于66的所有值, 'k2': 小于66的所有值} L = [11,22,33,44,55,66,77,88,99,90] d ={'k1':[],'k2':[]} for i in L:if i > 66:d['k1'].append(i)else:d['k2'].append(i) print(d)''' 2 統計s='hello alex alex say hello sb sb'中每個單詞的個數結果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2} ''' s = 'hello alex alex say hello sb sb' L = s.split(" ") print(L) d = {} for key in L:count = L.count(key)d.setdefault(key,count) print(d)元組
1. 作用:
# 存儲多個不可變的值,主要用來只讀的數據2. 定義
# t = (1,2,3,4,5) # t = tuple(1,2,3,4,5)3. 常用操作和內置方法
# 掌握 # 按索引取值,同列表一樣,但是只能取值 t = (1,2,3,'huazai') print(t[2]) print(t[-1])# 切片,也同列表操作 print(t[1:3]) print(t[-1:0:-1])#長度 print(len(t)) print(t.__len__())#成員運算 in、not in print('huazai' in t)#循環 for i in t:print(i)# 內置方法 # index 元素索引位置 print(t.index(1))# count 元素統計 print(t.count('huazai'))集合
1. 作用
去重,關系運算,2. 定義
集合:可以包含多個元素,用逗號分割, 集合的元素遵循三個原則: 1:每個元素必須是不可變類型(可hash,可作為字典的key) 2: 沒有重復的元素 3:無序 s1 = {1,2,2,3,4,5,6} s2 = {4,5,6,7,8,9}3.常用操作和內置方法
#1、長度len # print(len(s1)) #2、成員運算in和not in # print(2 in s1) #3、|合集 print(s1 | s2) #4、&交集 print(s1 & s2) #5、-差集 print(s1 - s2) #6、^對稱差集 print(s1 ^ s2) #7、== print(s1 == s2) #8、父集:>,>= print(s1 > s2) #9、子集:<,<= print(s1 < s2)4. 練習
'''一.關系運算有如下兩個集合,pythons是報名python課程的學員名字集合,linuxs是報名linux課程的學員名字集合pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}linuxs={'wupeiqi','oldboy','gangdan'}1. 求出即報名python又報名linux課程的學員名字集合2. 求出所有報名的學生名字集合3. 求出只報名python課程的學員名字4. 求出沒有同時這兩門課程的學員名字集合 ''' # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} # linuxs={'wupeiqi','oldboy','gangdan'} # print(pythons & linuxs) # print(pythons | linuxs) # print(pythons - linuxs) # print(pythons ^ linuxs) ''' 二.去重1. 有列表l=['a','b',1,'a','a'],列表元素均為可hash類型,去重,得到新列表,且新列表無需保持列表原來的順序2.在上題的基礎上,保存列表原來的順序3.去除文件中重復的行,肯定要保持文件內容的順序不變4.有如下列表,列表元素為不可hash類型,去重,得到新列表,且新列表一定要保持列表原來的順序l=[{'name':'egon','age':18,'sex':'male'},{'name':'alex','age':73,'sex':'male'},{'name':'egon','age':20,'sex':'female'},{'name':'egon','age':18,'sex':'male'},{'name':'egon','age':18,'sex':'male'}, ] '''l = ['a','b',1,'a','a'] print(set(l)) L= [] for i in l:if i not in L:L.append(i) print(L)轉載于:https://blog.51cto.com/ronghuachen/2050442
總結
- 上一篇: mybatis if-else(写法)
- 下一篇: 从零开始撸一个Kotlin Demo