Python20-Day02
1、數(shù)據(jù)
數(shù)據(jù)為什么要分不同的類型
數(shù)據(jù)是用來表示狀態(tài)的,不同的狀態(tài)就應(yīng)該用不同類型的數(shù)據(jù)表示;
數(shù)據(jù)類型
數(shù)字(整形,長整形,浮點型,復(fù)數(shù)),字符串,列表,元組,字典,集合
2、字符串
1、按索引取值,只能取
input_info = 'Hello World' print(input_info[6])
2、切片(顧頭不顧尾)
input_info = 'Hello World' print(input_info[0:5])
3、長度len
input_info = 'Hello World' print(len(input_info))
4、成員運算in和not in
input_info = 'Hello World' # if 'Hello' in input_info: # print('OK') if 'wang' not in input_info:print('wang is not in input_info!' )
5、移除空白strip (移除開頭和結(jié)尾的空格)
input_info = ' Hello World' input_info2 = ' Hello World ' print(input_info) print(input_info.strip()) print(input_info2.strip())
6、切分split
input_info = 'egon,alex,wupeiqi,oldboy' #默認按照空格進行切分 # print(input_info.split()) #切分完成后得到一個列表 print(input_info.split(',')) #指定分隔符進行切分
7、循環(huán)
input_info = 'hello world' for item in input_info:print(item)
?
#字符串需要掌握的方法
1、lower,upper
input_info = 'Hello World' print(input_info.upper()) print(input_info.lower())
2、startswith和endswith
input_info = 'hello world' print(input_info.startswith('hello')) #返回布爾值 print(input_info.endswith('world')) #返回布爾值
? 3、format
res='{} {} {}'.format('egon',18,'male') res='{1} {0} {1}'.format('egon',18,'male') res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
4、join
tag=' ' print(tag.join(['egon','say','hello','world'])) #可迭代對象必須都是字符串
5、replace
name='hello,every one,are you ok,are you good' print(name.replace('hello','Hello')) print(name.replace('you','then',1))
6、isdigit
res_input = input('Input>>: ') print(res_input.isdigit())
#字符串類型總結(jié):
1、只能存一個值,2、有序3、不可變:值變,id就變。不可變==可hash 3、列表
定義:[]內(nèi)可以有多個任意類型的值,逗號分隔
#按索引存取值(正向存取+反向存取):即可存也可以取?
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] print(my_girl_friends[0]) my_girl_friends.insert(1,'zhaoliying') print(my_girl_friends)
?
#切片(顧頭不顧尾,步長)
my_girl_friends=['alex','wupeiqi','yuanhao',4,5,'zhaoliying','wangxiaomi'] print(my_girl_friends[1:6:2])
#長度
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] print(len(my_girl_friends))
?
#成員運算in和not in
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] if 'alex' in my_girl_friends:print('This is ok') if 'zhaoliying' not in my_girl_friends:print('ni xiang sha ne')
#追加
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] my_girl_friends.append('zhaoliying') #append,在列表的尾部添加 print(my_girl_friends) my_girl_friends.insert(1,'zhaoliying') #insert,可以指定列表的下標(biāo)添加元素 print(my_girl_friends)
#刪除
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] print(my_girl_friends.pop()) #pop,刪除列表中的元素,從尾部開始刪除,并且會返回刪除的值 print(my_girl_friends.pop()) print(my_girl_friends.pop())
#循環(huán)
my_girl_friends=['alex','wupeiqi','yuanhao',4,5] for item in my_girl_friends:print(item)
#步長
l=[1,2,3,4,5,6] print(l[0:3:1]) #正向步長 print(l[2::-1]) #反向步長 print(l[::-1]) #列表翻轉(zhuǎn)
?
#列表類型總結(jié)
1、可以存多個值,值都可以是字符串,列表,字典,元組
2、有序
2、可變:值變,id不變。可變==不可hash
?
4、元組
#按索引取值(正向取+反向取):只能取
age=(11,22,33,44,55) print(age[1])
#2、切片(顧頭不顧尾,步長)
age=(11,22,33,44,55) print(age[1:3])
#3、長度
age=(11,22,33,44,55) print(len(age))
#4、成員運算in和not in
age=(11,22,33,44,55) if 11 in age:print('This is ok!') if 88 not in age:print('This is error')
#5、循環(huán)
age=(11,22,33,44,55) for item in age:print('your age is %s' %item)
?
5、字典
作用:存多個值,key-value存取,取值速度快
定義:key必須是不可變類型,值可以是任意類型
info={'name':'egon','age':18,'sex':'male'}
#1、按key存取值:可存可取
info={'name':'egon','age':18,'sex':'male'}
print(info['name']) #2、長度len
info={'name':'egon','age':18,'sex':'male'}
print(len(info))
#3、成員運算in和not in
info={'name':'egon','age':18,'sex':'male'}
if 'name' in info:print(info['name']) #4、刪除
info={'name':'egon','age':18,'sex':'male'}
print(info.pop('age'))
print(info) #5、鍵keys(),值values(),鍵值對items()
info={'name':'egon','age':18,'sex':'male'}
for item in info:print(item,info[item]) ?
6、集合
作用:去重,關(guān)系運算
定義集合:
集合可以包含多個元素,用逗號分隔
集合的元素遵循三個原則:
1. 每個元素必須是不可變類型
2. 沒有重復(fù)的元素
3. 無序
注意:集合的目的是將不同的值存放到一起,不同的集合用來做關(guān)系運算
#1、長度len
# pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} # print(len(pythons)) pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'}
#3、|合集 # print(pythons|linuxs) #4、&交集 # print(pythons & linuxs) #5、-差集 # print(pythons - linuxs) #6、^對稱差集 # print(pythons ^ linuxs)
?
7、 文件編碼
字符編碼的發(fā)展3個階段:
1、 現(xiàn)代計算機起源于美國,最早誕生也是基于英文考慮的ASCII
2、為了滿足中文和日文,中國定制了GBK
3、每一個國家都有自己的標(biāo)準(zhǔn),就不可避免的會有沖突,在多語言混合的文本中,顯示出來就會亂碼,如何解決:
1. 能夠兼容萬國字符
2. 與全世界所有的字符編碼都有映射關(guān)系,這樣就可以轉(zhuǎn)換成任意國家的的字符編碼。
總結(jié):內(nèi)存中統(tǒng)一采用Unicode,浪費空間來換取可以轉(zhuǎn)換成任意編碼(不亂碼),硬盤可以采用各種編碼,如utf-8,保證存放于硬盤或者基于網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量很小,提高傳輸效率與穩(wěn)定性。
總結(jié):保證不亂碼的的核心法則:
字符按照什么標(biāo)準(zhǔn)而編碼的,就按照什么標(biāo)準(zhǔn)解碼。
在內(nèi)存中寫的所有字符,都是Unicode編碼。
8、 文件操作
1、文件操作流程
打開文件,得到文件句柄并賦值給一個變量
通過句柄對文件進行操作
關(guān)閉文件
打開文件的模式有:
r,只讀模式(默認)。
w,只寫模式。【不可讀;不存在則創(chuàng)建;存在則刪除內(nèi)容;】
a,追加模式。【可讀; 不存在則創(chuàng)建;存在則只追加內(nèi)容;】
"+" 表示可以同時讀寫某個文件
r+,可讀寫文件。【可讀;可寫;可追加】
w+,寫讀
a+,同a
"U"表示在讀取時,可以將 \r \n \r\n自動轉(zhuǎn)換成 \n (與 r 或 r+ 模式同使用)
rU
r+U
"b"表示處理二進制文件(如:FTP發(fā)送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標(biāo)注)
rb
wb
ab
f = open('文件操作.file','r',encoding='utf-8') # print(f.read()) print(f.readline(3).strip()) #readline每次讀一行,可以設(shè)置limit(字符)
2、with語句?
為了避免打開文件后忘記關(guān)閉,可以用with:
with open('文件操作.file','r',encoding='utf-8') as f:pass
python2.7后,with支持對多個文件的上下文進行管理
with open('log1') as obj1, open('log2') as obj2:pass
?
轉(zhuǎn)載于:https://www.cnblogs.com/mrwang1101/p/8023521.html
總結(jié)
以上是生活随笔為你收集整理的Python20-Day02的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 键盘多少钱一个啊?
- 下一篇: insert语句让我学会的两个MySQL