1.find( )、rfind( )、index( )、rindex( )、count( )
2.center( )、ljust( )、rjust( )、zfill( )
4.captalize( )、swapcase( )、title( )
寫在開篇:
可變:變量值發生改變,id地址不變【在原來的基礎上】
不可變:變量值發生改變,id地址改變【開辟新的空間】
數字類型的內置方法
數字類型分為整型和浮點型。
一、整型內置方法(int)
用途:年齡、id、級別等
定義:可以使用int( )方法將純數字的字符串轉為十進制的整型
age = 19 age = int(10) print(type(age)) #<class 'int'>
x = int('111') print(type(x)) #<class 'int'>
x = int('11.1') print(x) #報錯,int(字符串需為整數)
常用操作+內置方法:算術運算+比較運算
有序or無序:
不存在有序無序之說
存值單個or多個:
單個
可變or不可變:
不可變
二、浮點型內置方法(float)
用途:薪資、身高、體重
定義:可以使用float()方法將純數字的字符串轉為浮點型數字
age = 3.1 age = float(3.1) print(type(age)) #<class 'float'>
x = float('111') print(x) print(type(x)) #111.0 #<class 'float'>
x = float('11.1') #非純數字的字符串 報錯 print(type(x)) #<class 'float'>
常用操作+內置方法:算術運算+比較運算
有序or無序:
無有序無序之說
存單值or多值:
單值
可變or 不可變:
不可變
字符串類型內置方法
一、字符串類型內置方法(str)
-
b'101':二進制編碼的字符串
-
r'\n':原生字符串,r會令字符串里的命令失效
name = 'nick' s1 = str(1.1) s2 = str([1,2,3]) print(f's1:{s1},type:{type(s1)}') print(f's2:{s2},type:{type(s2)}') #s1:1.1,type:<class 'str'> #s2:[1,2,3],type:<class 'str'>
常用操作+內置方法:常用操作和內置方法分為優先掌握,需要掌握和其他操作三個部分
有序or無序:
只要是有索引的,都是有序的,因此字符串是有序的
存單值or多值:
單值
可變or不可變:
不可變
二、常用操作和內置方法
優先掌握:
-
按索引取值
-
切片
-
長度len
-
成員運算in | not in
-
移除空白
-
切分split
-
循環
1.索引取值
mm = 'hello nick' print(f'索引為6:{mm[6]}') print(f'索引為-3:{mm[-3]}') #索引為6: n #索引為-3:i
2.切片
mm = 'hello nick' print(f'切片3到最后:{m[3:]}') print(f'切片3-8:{mm[3:8]}') print(f'切片3-8,步長為2:{mm[3:8:2]}') print(f'切片3-最后,步長為2:{mm[3::2]}') print('\n**了解知識點**') print(f'切片所有: {mm[:]}') print(f'反轉所有: {mm[::-1]}') print(f'切片-5--2: {mm[-5:-2:1]}') print(f'切片-2--5: {mm[-2:-5:-1]}' #切片3-最后: lo nick #切片3-8: lo ni #切片3-8,步長為2: l i #切片3-最后,步長為2: l ik #**了解知識點** #切片所有: hello nick #反轉所有: kcin olleh #切片-5--2: ni #切片-2--5: cin
3.長度len
mm = 'hello nick' print(len(mm)) #10
4.成員運算in or not in
mm = 'my name is nick, nick handsome' print(f"'nick' in mm:{'nick' in mm}") print(f"'jason' not in mm:{'jason' not in mm}") print(f"not 'jason' in mm:{not 'jason' in mm}") #'nick' in msg: True #'jason' not in msg: True #not 'jason' in msg: True
5.移除空白strip( )
name = '&&&n ick' print(f"name.strip('&'):{name.strip('&')"}) print(f"name:{name}") pwd = input('password: ') if pwd.strip() == '123': print('密碼輸入成功') print(f"'*-& nick+'.strip('*-&+'):{'*-& nick+'.strip('*-& +')}") #name.strip('&'): n ick #name: &&&n ick #password: 123 #密碼輸入成功 #'*-& nick+'.strip('*-& +'): nick
6.切分split
info = 'nick:male:19' info_list1 = info.split(':') info_list2 = info.split(':',1) print(f'info_list1:{info_list1}') print(f'info_list2:{info_list2}') #info_list1:['nick', 'male', '19'] #info_list2:['nick', 'male:19']
7.循環
mm = 'hello nick' for i in mm: print(i) #h #e #l #l #o #n #i #c #k
需要掌握:
-
lstrip&rstrip
-
lower&upper
-
startswith&endswith
-
rstrip
-
join
-
replace
-
isdigit
1.lstrip( )和rstrip( )
name = '&&nick&&' print(f"{name.lstrip('&')}") print(f"{name.rstrip('&')}") #nick&& #&&nick
2.lower( )和upper( )
name = 'Nick Chen' print(f'{name.lower()}') print(f'{name.upper()}') #nick chen #NICK CHEN
3.startswith( )和endswith( )
name = 'Nick Chen' print(f'{name.startswith("Nick")}') print(f'{name.endswith("chen")}') #True #False
4.rsplit( )
info = 'nick:male:19' print(f"{info.rsplit(':'),1}") #['nick:male','19']
5.join( )
lis = [1,2,'19'] print(f"{':'.join(lis)}") #報錯 數字和字符串不可拼接 lis = ['nick','male','19'] print(f"{':'.join(lis)}") #nick:male:19
6.replace( )
name = 'nick shuai' print(f"{name.replace('shuai','handsome')}") #nick handsome
7.isdigit( )
salary = '111' print(salary.isdigit()) salary = '111.1' print(salary.isdigit()) #True #False
age = input('age: ') if age.isdigit(): age = int(age) if age < 18: print('小姐姐:)') else: print('阿姨好:)') else: print(f'你的年齡是這個{age}?') #結果一: age: 18 阿姨好:) #結果二: age: 啊? 你的年齡是這個啊??
其他操作:
-
find | rfind | index |rindex | count
-
cente | ljust |rjust | zfill
-
expandtabs
-
captalize | swapcase | title
-
is 系列
1.find( )、rfind( )、index( )、rindex( )、count( )
mm = 'my name is tank, tank shi sb, hha' print(f"{mm.find('tank')}") print(f"{mm.find('tank',0,3)}") #從0開始索引,3結束索引,找不到返回-1 print(f"{mm.rfind('tank')}") print(f"{mm.index('tank')}") print(f"{mm.rindex('tank')}") print(f"{mm.count('tank')}") #11 #-1 #17 #11 #17 #2
注意:find找不到返回-1,index找不到直接報錯
2.center( )、ljust( )、rjust( )、zfill( )
print(f"{'info nick'.center(50,'*')}") #放置中央 print(f"{'info nick'.ljust(50,'*')}") #調整*居左 print(f"{'info nick'.rjust(50,'*')}") #調整*居右 print(f"{'info nick'.zfill(50)}") #填充0居右 ********************info nick********************* info nick***************************************** *****************************************info nick 00000000000000000000000000000000000000000info nick
3.expandtabs( )
print(f"a\\tb\\tc: %s" %('a\tb\tc\t')) print(f"'a\\tb\\tc'.expandtabs(32): %s" %('a\tb\tc\t'.eapandtabs(32)) #a\tb\tc: a b c #'a\tb\tc'.expandtabs(32):a b c
注意:’ \ '加在‘ \t ’、' \n '等之前則命令失效,成為普通字符串
4.captalize( )、swapcase( )、title( )
name = 'nick handsome sWAPCASE' print(f"name.capitalize(): {name.capitalize()}") #首字母大寫,用在段落開始 print(f"name.swapcase(): {name.swapcase()}") # 大小寫互轉 print(f"name.title(): {name.title()}") #所有單詞首字母大寫 Nick handsome sWAPCASE NICK HANDSOME Swapcase Nick Handsome Swapcase
5.is數字系列(只是為了告訴你,判斷是否為數字時除了中文數字以后使用isdigit( )即可)
-
isdecimal(): 檢查字符串是否值包含十進制字符,如果是返回True,否則返回False。
-
isdigit(): 如果字符串只包含數字則返回True,否則返回False。(重要)
-
isnumeric(): 如果字符串中只包含數字字符,則返回True,否則返回False。
num = "1" #unicode num.isdigit() # True num = "1" # 全角 num.isdigit() # True num = b"1" # byte num.isdigit() # True num = "IV" # 羅馬數字 num.isdigit() # True num = "四" # 漢字 num.isdigit() # False =================== isdigit() True: Unicode數字,byte數字(單字節),全角數字(雙字節),羅馬數字 False: 漢字數字 Error: 無 ================ import unicodedata unicodedata.digit("2") # 2 unicodedata.digit("2") # 2 unicodedata.digit(b"3") # TypeError: must be str, not bytes unicodedata.digit("Ⅷ") # ValueError: not a digit unicodedata.digit("四") # ValueError: not a digit #"〇","零","一","壱","二","弐","三","參","四","五","六","七","八","九","十","廿","卅","卌","百","千","萬","萬","億"
6.is其他
-
salpha(): 如果字符串至少有一個字符並且所有字符都是字母則返回True,否則返回False。
-
islower(): 如果字符串中只包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是小寫,則返回True,否則返回False。
-
isupper(): 如果字符串中包含至少一個區分大小寫的字符,並且所有這些(區分大小寫的)字符都是大寫,則返回True,否則返回False。