資料型別及內建方法
阿新 • • 發佈:2018-11-21
資料型別及內建方法
一、數字型別
1.int整型 (不可變型別,一個值)
print(int(3.1)) # res=int('1111111') # print(res,type(res))
整型可接收純數字組成的字串、浮點型或者是阿拉伯數字
在python中十進位制轉換為二進位制 bin(x)
轉換為八進位制 oct(x)
轉換為16進位制 hex(x)
2.float浮點型 (不可變型別,一個值)
同int
# res=float('111111.1') # print(res,type(res))
二、str 字串型別 (有序、不可變型別)
型別轉換:任意型別資料都可以轉換成字串型別
需精通的常用操作+內建方法:
-
按索引取值(正向取+反向取):只能取出,不能輸入
# res=float('111111.1')
2.切片(顧頭不顧尾,步長)
msg='hello world' print(msg[0:5:2]) # 0表示起始字元位置,5表示終止字元位置,2表示間隔長度 print(msg[0:5])#沒有步長就按順序輸出 print(msg[::-1])#步長為負數從後往前,反轉字串的方法 print(msg[0:]) print(msg[-1:-6:-1]) #若想從後往前取,必須起止位置與步長一致 print(msg[:]) hlo hello dlrow olleh hello world dlrow hello world
3.長度 len
msg='bkwrflag' n=len(msg) print(n) #len表示字串的長度
4.成員運算 in 和 not in
in:判斷一個字串是否在一個大字串中
msg='hello world' print('he'in msg) print('wx'not in msg) True True
5.移除 strip
strip:移除字串左右兩邊的某些字元,只能是左右兩邊的
msg=' hello ' n=msg.strip(' ') print(n) #移除空格 name_bak='egon' pwd_bak='1234' name=input('請輸入你的姓名:').strip(' ') pwd=input('請輸入你的密碼:').strip(' ') if name==name_bak and pwd==pwd_bak: print('login successful') else: print('輸入的姓名或密碼錯誤') ###移除左右兩邊 msg='*******+_+_+_0)hello****()*' n=msg.strip('*') print(n) +_+_+_0)hello****() #移除多個字元 msg='*******+_+_+_0)hello****()*' n=msg.strip('*+_0)(') print(n) hello
6.切分 split
'字串'.split 把有規律的字串切成列表從而方便取值
msg='a;b;c;d;e;f;g;h;j' n=msg.split(';',2) #msg.split('',2)引號內表示以什麼規律切分,數字2表示切分的列表內值的個數,以0計 print(n) ['a', 'b', 'c;d;e;f;g;h;j'] #若想將列表n重新變回字串可用內建方法 '字元'.join(列表) s1=':'.join(n) #就轉換成字串,:加在每個字元之間 print(s1) a:b:c;d;e;f;g;h;j
7.迴圈
for n in 'hello': print(n)
需掌握的操作
1.strip lstrip rstrip
lstrip:表示從移除字元左邊
rstrip:表示移除字元右邊
msg='*****hello****' print(msg.strip('*')) print(msg.lstrip('*')) print(msg.rstrip('*')) hello hello**** *****hello
2.lower upper
msg = 'AaBbCc123123123' print(msg.lower())#字串小寫 print(msg.upper())#字串大寫 aabbcc123123123 AABBCC123123123
3.startswith endswith
判斷字串是否以'字元'開頭 結尾
msg='alex is dsb' print(msg.startswith('alex')) print(msg.endswith('sb')) True True
4.format
msg='my name is %s my age is %s' %('egon',18) print(msg) #通過%s引值 msg='my name is {name} my age is {age}'.format(age=18,name='egon') #利用format傳值 print(msg)
5.split rsplit
rsplit從右開始切分
cmd='get|a.txt|33333' print(cmd.split('|',1)) print(cmd.rsplit('|',1)) ['get', 'a.txt|33333'] #兩種切分的結果很顯然 ['get|a.txt', '33333']
6.replace
msg='kevin is sb kevin kevin' print(msg.replace('kevin','sb',2)) sb is sb sb kevin #替換 語法msg.replace('舊的字元','新的字元',替換個數)
7.isdigit 當字串為純數字時顯示True
res='11111' print(res.isdigit()) int(res) True age_of_bk=18 inp_age=input('your age: ').strip() if inp_age.isdigit(): inp_age=int(inp_age) #int('asdfasdfadfasdf') if inp_age > 18: print('too big') elif inp_age < 18: print('to small') else: print('you got it') else: print('必須輸入純數字')