for迴圈和字串操作
阿新 • • 發佈:2021-01-01
一、for迴圈基本介紹
相同點:理論上for迴圈能做的事,while迴圈都可以做
不同點:for迴圈在迴圈取值(便利迴圈)比while迴圈更加簡潔。迴圈次數取決於in 後面包含的值的數量
1.語法:
for 變數名 in 可迭代物件:#可迭代物件可以是:列表、字典、字串、元組、集合 程式碼1 程式碼2 程式碼3
2.迴圈取值:
列表:
for x in ['name', 'age', 'money']: # 迴圈幾次根據可迭代物件中有幾個字 print(x) =========> name age money
字典:
dict ={'name' : 'ake', 'age':'18', 'money' :1232} for x in dict: # 字典中取得是key,需要注意的是value如何取出來的! print(x,dict[x]) ===============> name ake age 18 money 1232
字串;
a ="my name is jake!" for b in a : #空格也會取到!!! print(b) ==============> m y n a m e i s j a k e
3.for + range # 控制迴圈的次數
range 會自動生成一個列表,來表中的值的個數代表迴圈幾次(顧頭不顧尾)
name = 'JAKE' #for + break / for + else 和while一樣 沒有區別 sercrt = 'asd' for a in range (3): inp_name = input('請輸入你的賬號:') inp_password = input('請輸入你的密碼:') if inp_name == name and inp_password == sercrt: print('登入成功') while True: amd= input('請輸入你要進行的操作:') if amd == 'q': break else: print('命令{x}正在執行,'.format(x=amd)) break else: print('請重新登入')
4. for + continue
for i in range(9): if i == 5: continue print(i)
5.for 迴圈巢狀
和while迴圈一樣使用。
for迴圈巢狀時外層迴圈一次,內層需要迴圈一遍。
退出迴圈只能使break.
print補充:
print('name') print('jake') =========== # name # jake print('name\n') # 換行符 print('jake') =========== # name # jake print('name',end=' ') # 取消換行符 print('jake') ============ # name jake
二、資料型別
1.整形型別
型別裝換
#整形
res = int('2175') print(res,type(res))
進位制轉換
#進位制轉換 print(bin(13))# 10=====>2 bin() print(oct(96))# 10=====>8 oct() print(hex(32))# 10======>16 hex() #反轉 print(int('0b1101',2)) #2====>10 print(int('0o140',8)) #8====>10 print(int('0x20',16)) #16====>10
2.字元型別
型別轉換:
str可以把其他型別轉換成字串
內建方法:
按索引正向取,反向取,中間取。(只能取不能改!)
a ="my name is jake!" print(a[4])
切片:根據索引,從大字串中拷貝出來一個子字串。
a ="my name is jake!" b = a[3:7] print(a) print(b) =========== my name is jake! name
步長:
a ="875245405465874" b = a[0:15:2] # 反向步長:b =a[15:0:-2] 全倒過來: b = a[::-1] print(b) ========= 875245405465874 85445684
移除左右兩邊的空白或者符號strip:
a =" 875245405hgjf4 " b=a.strip() print(b)
切分split:把一個字串按照某種分隔符進行切分,得到一個列表。#預設分隔符是空格
a ="87524;5405h,gjf4" b=a.split(';') print(b) ========= ['87524', '5405h,gjf4']
需要掌握:
strip/lstrip/rstrip
a ="******875245405hgj*****" b=a.rstrip('*')/a.lstrip('*') # 去除右邊的"*"/去除左邊的"*"
print(b) ========= ******875245405hgj/875245405hgj*****
a ="SDJGAJjkjkjkj" b=a.lower() # 列印字串所有字元都為小寫 b1=a.upper() # 列印字串所有字元都為大寫 print(b) print(b1) =========== sdjgajjkjkjkj SDJGAJJKJKJKJ
a ="ABcSDJGAJjjkjkj009" b=a.startswith('AB') # 字串開頭的字元為“AB” b1=a.endswith('009') # 字串結尾的字元為“009” print(b) print(b1) # =========== #True # True
a ="ABC:080:jjkjkj009" b=a.split(':',1) b1=a.rsplit(':',1) print(b) print(b1) # =========== # ['ABC', '080:jjkjkj009'] # ['ABC:080', 'jjkjkj009']
a ="ABC,080,jjkjkj009" b="-".join(a)#使用某個符號把字串內的拼接 print(b) # =========== # A-B-C-,-0-8-0-,-j-j-k-j-k-j-0-0-9
a ="name ash jajskc " b=a.replace('name','NAME') # 把name轉成大寫的NAME print(b) # =========== # NAME ash jajskc
isdigit (判斷字串是否為整形)
age = input('請輸入你的名字升高身高:').strip() if age.isdigit(): age = int(age) if age > 180 : print('你猜的太大了') elif age < 180: print('你猜的太小了') else: print('恭喜你,猜對了!') else: print('必須輸入數字!')