字符串的定義
# 使用轉義“\”使得引號內的引號顯示 str1 = 'I\'am a student' str2 = "Jason said:\"I like\000 you\"" print(str1,str2,sep="\n") str3 = "jiangsu" print(str3[2]) #索引從零開始 print(str3[0:6]) #[起始位置:結束位置] print(str3[1:6:2]) #[起始位置:結束位置:步進值] print(str3[2:]) #[起始位置:]不寫后面,去索引后面 print(str3[:2]) #[:結束位置]不寫前面,取索引前面
注意事項
str1='' #空字符串 str2=len('') str1=' ' #有空格的字符串,非空字符串 str2=len(' ') ''!=' '
常用轉義符
print('hello\tpython') #\t 橫向制表符,空出四個空格,鍵盤tab鍵 print('hello\npython') #\n 換行符 print('hello \\t') #打印出\t,轉義字符也當做字符串的一部分 print(r'hello\tpython') #字符串前加個r,取消轉義
常用字符串操作
查看字符串長度 len()函數
len('hello python') #查看字符串長度 len('hello python啊') #查看字符串長度,中英文均占一個字符長度
大小寫轉化 lower(),upper()函數
str3='HELLO' str4='python' str5='MyName' print(str3.lower()) #將字符串中所有大寫字符轉小寫 print(str4.upper()) #將字符串中所有小寫字符轉大寫 print(str5.lower()) print(str5.upper())
字符串連接
str5='hello' str6='python' print(str5+str6) #字符串用“+”拼接 print(str5+','+str6) print(str5+'\t'+str6)
str7='hello' ','.join(str7) #用“,”把字符串分開 str8='a'.join('python') #本行的a與下行的a需一致方可完成列表分割 str9=str8.split('a') print(str9)
字符串切片
str11='abcdefg' str11[1:] #切出索引1到最后 str11[::] #切出所有 str11[::2] #步長為2,切所有
字符串操作進階
實際業務中字符串常用操作:取出字符串中的數字、字符、大小寫字母
方法1:for循環 str.isdigit() 檢測字符串是否只由數字組成 str.islower() 檢測字符串是否只由小寫字母組成 str.isupper() 檢測字符串是否只由大寫字母組成
str12='AAbbbCC223' number='' lower='' upper='' for i in str12: if i.isdigit(): number=number+i elif i.islower(): lower=lower+i elif i.isupper(): upper=upper+i print(number+'\t'+lower+'\t'+upper)
方法2:正則表達式
\d 匹配任意數字,等價於[0-9]
\D 匹配任意非數字
[0-9] 匹配任何數字,類似於[0123456789]
[a-z] 匹配任意小寫字母
[A-Z] 匹配任意大寫字母
[a-zA-Z0-9] 匹配任意字母及數字
import re #導入正則表達式re模塊 str13='AA1bbbCC223d' print('.'.join(re.findall(r'[A-Za-z]',str13))) #提取字母,不區分大小寫 print(','.join(re.findall(r'[a-z]',str13))) #提取小寫字母 print('-'.join(re.findall(r'[A-Z]',str13))) #提取大寫字母 print('~'.join(re.findall(r'[0-9]',str13))) #提取數字 print(re.sub('\D','=',str13)) #提提取數字,參數1是匹配出任意非數字,用參數2替換掉, re.findall(r'[A-Za-z]',str13)
數據類型強制轉換
注意:數字可以轉字符串,但只有只包含數字的字符串才能轉成數字類型
float(6) #整數轉浮點數 int(6.66) #浮點數轉整數 a=str(1.23) #數字轉字符串 print(a) type(a) int('a123') #錯誤,只有只包含數字的字符串才能轉成數字類型 int('1.23') #只有只包含數字的字符串才能轉成數字類型
其他
str11='a#b#c#d' str12='?' list11=['e','f','g','h'] str12.join(str11) str11.split('#',1)