for迴圈+數字型別補充
一、for迴圈
1、迴圈取值
1.1列表型別:
定義l=['a','b','c'],要提取列表中的值
如果採用while迴圈的話:
print(len(l))
i=0
while i<len(l):
print(l[i])
i+=1
採用for迴圈的話會方便很多:
l=['a','b','c']
for item in l:
print(item)
這行程式碼讓python從列表l中取出元素,並講其存到變數item中,元素會被打印出來
1.2字典型別:
dic={'x':111,'y':222,'z':333}
for item in dic:
print(item)
因此字典型別中預設列印的是key,所以以上結果為:x y z
如果也想要取值的話:
dic={'x':111,'y':222,'z':333}
for k in dic: #k='x'
print(k,dic[k])
列印結果就是: x 111 y 222 z 333
1.3 while迴圈 VS for迴圈:
1.while迴圈:是條件迴圈,迴圈的次數取決於條件何時為False
for迴圈:是迭代迴圈,迴圈的次數取決於資料中包含的元素的個數
2.for迴圈專門用來取值,在迴圈取值方面要比while要強大。因此,遇到迴圈取值就選擇for迴圈
3.for迴圈可以取值列表、字典、和範圍range
1.4
for+break 和while+break是一樣的,break直接終止本層迴圈
for+continue 和while+continue也一樣,cont終止的是本次迴圈,不影響下次的迴圈
for+else 和while+else也一樣,else的子代塊只有在while迴圈沒有被break打斷的情況下才會執行
1.5 for迴圈巢狀
for i in range(3)
for j in range(2)
print(i,j)
每當外層迴圈迴圈一次,內層迴圈要迴圈一套
二、資料型別補充
數字型別:
(一).整型
1.型別轉換:
浮點型、純數字的字串可以轉換為整型,如下:
print(int(3.33))
print(int('33333'))
2.整型存一個值
3.不可變型別
(二)浮點型
1.型別轉換:
整型、只有小數的字串可以轉換成浮點型,如下:
print(float(333))
print(float('33.333'))
(三)補充:
十進位制轉二進位制:print(bin(13))
十進位制轉八進位制:print(oct(13))
十進位制轉十六進位制:print(hex(13))
字串型別:
1.型別轉換: 可以把任意型別專場字串型別
2.雖然只能存一個值,但是這個值可以有不止一個的字元,所以有序
3.不可變型別
4.按索引取值(正向取+反向取) :只能取
字串和列表一樣,可以採用索引取值,但是列表取得是元素,字串取得是字元,如下:
正向取和列表一樣,從0開始,不同的是字串可以反向取,從後向前,從-1開始:
msg='hello world'
print(msg[0])
print(msg[-1])
5.切片(顧頭不顧尾,步長)--> 索引的擴充套件運用
msg='hello world'
print(msg[0:5:2])
打印出來是:hlo 0代表的是從0起始,5代表到第五個,但是切片顧頭不顧尾,所以不包括第五個。2是步長,意思是說隔兩個數一次
print(msg[0:])
打印出來是:hello world 如果不寫終止,預設到最後,不寫步長預設步長是1
6.長度len:統計的是字元的個數
msg='h你d'
print(len(msg)) 打印出來是:3
7.成員運算in和not in:判斷一個子字串是否存在與一個大字串中
msg='hello world'
print('ho' in msg) 打印出來是False
print('ho' not in msg) 打印出來是True 推薦使用這種
8.移除空白strip:移除字串左右兩邊的某些字元
msg=' hello '
print(msg.strip(' '))
print(msg.strip())
因此去掉空格括號內可以打一個空格,也可以什麼都不打,系統預設去掉空格,如果想要去掉*,括號就打*
9.切分split: 把有規律的字串切成列表從而方便取值
info='egon:18:180:150'
res=info.split(':',1)
print(res) 打印出來是['egon', '18:180:150']
print(res[1]) 打印出來是:18:180:150
上面的程式碼中:的意思是說,從 :那裡切分。1的意思是說,從左往右,遇到:不管後面還有沒有,切分一次。
res=info.split(':') 打印出來是['egon', '18', '180', '150'] 括號內不寫數字的話,就是說每一個:都要切分。
補充(四星):
1、strip,lstrip,rstrip
msg='*****hello****'
print(msg.strip('*'))
print(msg.lstrip('*'))
print(msg.rstrip('*'))
2、lower,upper
msg='AaBbCc123123123'
print(msg.lower())
print(msg.upper())
3、startswith,endswith
msg='alex is dsb'
print(msg.startswith('alex'))
print(msg.endswith('sb'))
4、format的三種玩法
msg='my name is %s my age is %s' %('egon',18) print(msg)
msg='my name is {name} my age is {age}'.format(age=18,name='egon') print(msg)
format瞭解知識點: msg='my name is {} my age is {}'.format(18,'egon') msg='my name is {0}{0} my age is {1}{1}{1}'.format(18,'egon') print(msg)
5、split,rsplit
cmd='get|a.txt|33333'
print(cmd.split('|',1))
print(cmd.rsplit('|',1))
6、replace
msg='kevin is sb kevin kevin'
print(msg.replace('kevin','sb',2))
7、isdigit #當字串內為純數字時結果為True
res='11111'
print(res.isdigit())
int(res)
瞭解(**)
1、find,rfind,index,rindex,count
print('xxxkevin is sb kevin'.find('kevin')) #尋找,沒有顯示-1
print('xxxkevin is sb kevin'.index('kevin')) #尋找,沒有的話會報錯
print('xxxkevin is sb kevin'.rfind('kevin')) #從右邊尋找
print('xxxkevin is sb kevin'.rindex('kevin')) #從右邊尋找
2、center,ljust,rjust,zfill
print('egon'.center(50,'*')) #egon居中顯示,*兩端補充
print('egon'.ljust(50,'*')) #egon左邊顯示,*右邊補充
print('egon'.rjust(50,'*')) #egon右邊顯示,*左邊補充
print('egon'.zfill(50)) #egon右邊顯示,預設0左邊補充
3、captalize,swapcase,title
print('my name is kevin'.capitalize()) #整句話第一個字母大寫
print('AaBbCc'.swapcase()) #大寫變小寫,小寫變大寫
print('my name is kevin'.title()) #每個單詞首字母大寫
4、is其他
name='egon123'
print(name.isalnum()) #字串由字母或數字組成
print(name.isalpha()) #字串只由字母組成
print(name.islower()) #判斷是否是小寫
print(name.isupper()) #判斷是否是大寫
name=' '
print(name.isspace()) #判斷是否有空格
msg='I Am Egon'
print(msg.istitle()) #判斷是否是首字母大寫