1. 程式人生 > >資料型別及內建方法

資料型別及內建方法

資料型別及內建方法

一、數字型別

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 字串型別      (有序、不可變型別)

型別轉換:任意型別資料都可以轉換成字串型別

需精通的常用操作+內建方法:

  1. 按索引取值(正向取+反向取):只能取出,不能輸入

    # res=float('111111.1')
    # print(res,type(res))

     

    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('必須輸入純數字')