1、python字符串
字符串是 Python 中最常用的數據類型。我們可以使用引號('或")來創建字符串,l
Python不支持單字符類型,單字符也在Python也是作為一個字符串使用。
>>> var1 = 'hello python' #定義字符串>>> print(var1[0]) #切片截取,從0開始,不包括截取尾數h>>> print(var1[0:5])hello>>> print(var1[-6:])python>>> var2 = var1[0:6]+'world' #截取字符并拼接賦值給新變量>>> print(var2)hello world
2、python轉義字符
/ :在行尾時,為續行符
// :反斜杠轉義,輸出'/'
/' :單引號轉義
/" :雙引號轉義
/b :退格(backspace)
/n :換行
/v :縱向制表符
/t :橫向制表符
/r :回車
/f :換頁
3、python字符串運算符
(+)拼接,(*)重復,([])索引,([:])切片,(in)成員判斷,(not in)非成員判斷,(r/R)元素輸出字符串
>>> var1 = 'hello'>>> var2 = 'python'>>> print(var1+var2) #拼接字符串hellopython>>> print(var1*3) #重復輸出字符串hellohellohello>>> print(var1[0]) #索引字符串h>>> print(var1[3:]) #索引切片lo>>> 'e' in var1 #判斷字符串是否在變量中True>>> 'p' not in var1 #判斷字符串是否不在變量中True>>> print("he/tllo /n") he llo >>> print(r"he/tllo /n") #原始輸出字符串,也就是原始輸出轉義字符he/tllo /n4、格式化字符串
Python 支持格式化字符串的輸出 。盡管這樣可能會用到非常復雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用與 C 中 sprintf 函數一樣的語法。
python字符串格式化符號:
| %c | 格式化字符及其ASCII碼 |
| %s | 格式化字符串 |
| %d | 格式化整數 |
| %u | 格式化無符號整型 |
| %o | 格式化無符號八進制數 |
| %x | 格式化無符號十六進制數 |
| %X | 格式化無符號十六進制數(大寫) |
| %f | 格式化浮點數字,可指定小數點后的精度 |
| %e | 用科學計數法格式化浮點數 |
| %E | 作用同%e,用科學計數法格式化浮點數 |
| %g | %f和%e的簡寫 |
| %G | %f 和 %E 的簡寫 |
| %p | 用十六進制數格式化變量的地址 |
格式化操作符輔助指令:
| * | 定義寬度或者小數點精度 |
| - | 用做左對齊 |
| + | 在正數前面顯示加號( + ) |
| <sp> | 在正數前面顯示空格 |
| # | 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X') |
| 0 | 顯示的數字前面填充'0'而不是默認的空格 |
| % | '%%'輸出一個單一的'%' |
| (var) | 映射變量(字典參數) |
| m.n. | m 是顯示的最小總寬度,n 是小數點后的位數(如果可用的話) |
>>> print("ascii:%c"%'s') #格式化輸出字符ascii:s>>> print("ascii:%c"%'1') #格式化輸出數字ascii:1>>> print("str:%s"%'character string') #格式化字符串str:character string>>> print("str:%d"%888) #格式化整數str:888>>> print("str:%f"%888) #格式浮點數str:888.000000>>> print("str:%e"%888) #格式化科學計數浮點數str:8.880000e+02>>> print("str:%E"%888) #同上str:8.880000E+02>>> print("str:%G"%888) #%f和%E的簡寫str:888>>> print("str:%20f"%888.089) #定義20寬度輸出str: 888.089000>>> print("str:%-20f"%888.089) #用左對齊str:888.089000 >>> print("str:%+20f"%888.089) #在正數前顯示加號str: +888.089000>>> print("str:%+-20f"%888.089) #左對齊顯示加號str:+888.089000 >>> print("str:%020f"%888.089) #以0填充默認的空格str:0000000000888.089000>>> print("str:%%%20f"%888.089) #在數字前輸入%號str:% 888.089000>>> print("str:%%%-20f"%888.089) #左對齊輸出%號str:%888.089000 >>> print("str:%20.3f"%888.089) #顯示最小總寬度20,小數點后位數為3位str: 888.089自python2.6開始,增加格式化字符串函數str.format():
用法:它通過{}和:來代替%
位置參數不受順序約束,且可以為{}空,只要format里有相對應的參數值即可,如參數值不夠就會報錯,參數索引從0開,傳入位置參數列表可用*列表
In [27]: '{}+{}={}'.format(1,2,3) #格式化按順序應用參數值Out[27]: '1+2=3'In [28]: '{2}-{1}={0}'.format(1,2,3) #指定順序應用參數值Out[28]: '3-2=1'In [29]: '{0}+{0}={1}'.format(2,3) #指定參數可以重復使用Out[29]: '2+2=3'In [30]: '{}+{}={}'.format(2,3) #如不指定順序,format參數不夠就會報錯---------------------------------------------------------------------------IndexError Traceback (most recent call last)<ipython-input-30-29f40e412920> in <module>()----> 1 '{}+{}={}'.format(2,3)IndexError: tuple index out of rangeIn [31]: l1 = [2,4,8] In [32]: '{}*{}={}'.format(*l1) #使用列表引用參數值Out[32]: '2*4=8'In [33]: dct = {'name':'python','age':20} #定義字典In [35]: 'welcom to {name},age is {age}'.format(name='qi',age=28) #變量引用Out[35]: 'welcom to qi,age is 28'In [36]: 'welcom to {name},age is {age}'.format(**dct) #使用**引用字典參數必須填寫key值Out[36]: 'welcom to python,age is 20'填充與格式化:In [53]: "{0: >20}".format("string") #從0位開始已空格填充20寬度左對齊Out[53]: ' string'In [54]: "{0:&>20}".format("string")Out[54]: '&&&&&&&&&&&&&&string'In [55]: "{0:#>20}".format("string") #使用#號會有個小bug ....: Out[55]: '##############string'In [60]: '{0:+<20}'.format("string") #向右對齊填充+Out[60]: 'string++++++++++++++'In [61]: '{0:+^20}'.format("string") #劇中對齊填充+Out[61]: '+++++++string+++++++'精度與進制:>>> '{0:.3f}'.format(10/3) #小數位進度格式化'3.333'>>> '{0:b}'.format(8) #格式化二進制'1000'>>> '{0:o}'.format(9) #格式化八進制'11'>>> '{0:x}'.format(26) #格式化十六進制'1a'>>> '{0:,}'.format(123456789) #千分位格式化'123,456,789'使用索引:>>> l2 = ['AA',{'bb':'cc'},('d','e')] #列表索引引用>>> 'outing:{0[0]}'.format(l2) 'outing:AA'>>> 'outing:{0[0]},{0[1]}'.format(l2) #將列表當成一個元素,在其中索引值"outing:AA,{'bb': 'cc'}"5、python的字符串方法
>>> s = 'i mi to' #將字符串的第一個字符改為大寫>>> s.capitalize()'I mi to'>>> s = 'I MI TO' #將字符串所有字符改為小寫>>> s.casefold()'i mi to'>>> s.center(15) #將字符串劇中,并用空格將字符串填充長度,如指定長度小于實際長度則沒有效果' I MI TO '>>> s = 'abcabcabcabc' #返回sub在字符串里出現的次數,start,end為可選參數,決定范圍>>> s.count('a',0,12)4>>> s.encode(encoding='utf-8',errors='strict') #以encoding指定的編碼格式對字符串進行編碼b'abcabcabcabc'>>> s.endswith('abc',1,12) #檢查字符串是否以sub結尾,是返回True,否返回False,start,end為可選參數,決定范圍True>>> s = 'a/tb/tc'>>> s.expandtabs(4) #把字符串的tab字符(/t)轉化為空格,如不指定tabsize,默認為8個空格'a b c'>>> s.find('b') #檢測字符串是否在字符串中,如在則返回索引,否則返回-1,可指定起始值。2>>> s='hello python'>>> s.index('hello') # 類似find(),不同在于如果sub不在字符串中,返回異常0 >>> s.isalnum() #有空格返回falseFalse>>> s='hellopython'>>> s.isalnum() #如果字符串至少有一個字符,并且所有字符都是字母或數字則返回True,否則FalseTrue>>> s.isalpha() #如果字符串至少有一個字符,并且所有字符都是字母則返回True,否則FalseTrue>>> s = '123'>>> s.isdigit() #如果字符串只包含數字則返回True,否則返回FalseTrue>>> s = '123'>>> s.isdecimal() #如果字符串只包含十進制數字則返回True,否則返回FalseTrue>>> s= 'ox123'>>> s.isdecimal()False>>> s = '0.33'>>> s.isdecimal()False>>> s = 'abc'>>> s.islower() #如果字符中至少包含一個能區分大小寫的字符,并且這些字符都是小寫則返回True,否則返回FlaseTrue>>> s = 'Abc'>>> s.islower()False>>> s = 'ABC'>>> s.isupper() #果字符中至少包含一個能區分大小寫的字符,并且這些字符都是大寫則返回True,否則返回FlaseTrue>>> s = 'ABc'>>> s.isupper()False>>> >>> s = '123'>>> s.isnumeric() #如果字符串只包含數字字符,則返回True,否則返回FalseTrue>>> s = '123a'>>> s.isnumeric()False>>> 'def'.isidentifier() #判斷字符串是否包含該語言的保留字True>>> 'aaa'.isprintable() #判斷是否可以打印True>>> ''.isspace()False>>> ' '.isspace() #判斷字符串中至少有一個字符且所有都是空格,否則返回falseTrue>>> ' a'.isspace()False>>> 'Abc'.istitle() #判斷是否是標題 格式,可以理解為首字母大寫。True>>> 'aBC'.istitle()False>>> s = '123'>>> '_'.join(s) #返回一個用指定字符串分隔的字,或者是將指定字符加入到另一個字符中。'1_2_3'>>> s.join('abc')'a123b123c'>>> s = 'ABC'>>> s.lower() #返回的是指定字符串的拷貝,并轉化成小寫'abc'>>> s.ljust(10,'+') #可以指定寬度,以及填充字符串,返回的是按寬度,填充字符串格式化后的左對齊的字符串。'ABC+++++++'>>> 'aaabccc'.partition('b') #在字符串中查找指定的字符,如找到則返回字符前部分,字符本身和后部分,如沒找到則返回字符串和兩個空字符串。('aaa', 'b', 'ccc')>>> 'aaabccc'.partition('e')('aaabccc', '', '')>>> 'aaabccc'.rpartition('b') #與partition一樣,但是是從右邊開始('aaa', 'b', 'ccc')>>> 'aaabccc'.rpartition('c')('aaabcc', 'c', '')>>> 'aaaaabbcc'.replace('a','A') #用指定字符串替換指定字符串,如果不指定替換次數,則替換所有'AAAAAbbcc'>>> 'aaaaabbcc'.replace('a','A',2)'AAaaabbcc'>>> 'aabbcc'.rfind('a') #返回指定子串的最高索引,如果沒找到則返回-1,可以指定要開始替換的起始,結束位置。1>>> 'aabbcc'.rfind('e')-1>>> 'aabbcc'.rindex('a') #與上面的rfind一樣,只是如果沒找到不是返回-1,而是觸發錯誤1>>> 'aabbcc'.rindex('e')Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: substring not found>>> 'aa'.rjust(10,'+') #與ljust()相對應,右對齊'++++++++aa'>>> 'aa'.ljust(10,'+')'aa++++++++'>>> 'aabccbddbee'.split('b') ##按指定字符串對目標字符串進行切割,可以指定切割次數['aa', 'cc', 'dd', 'ee']>>> 'aabccbddbee'.split('b',2)['aa', 'cc', 'ddbee']>>> 'aabccbddbee'.rsplit('b',2) #與split作用相同,但是從右側開始['aabcc', 'dd', 'ee']>>> ' aabb '.strip() #移除字符串兩側的指定字符串,默認移除空格,需要注意的是可以指定多個字符'aabb'>>> ' aabb'.strip('b')' aa'>>> ' aabb'.strip('ab')' '>>> 'beaacebb'.rstrip('eb') #與strip一樣,從右側刪除指定字符,可以為多個'beaac'>>> 'aa/nbb/ncc/ndd'.splitlines() #按換行符切割顯示,如沒指定keepends=True則將換行符移除。['aa', 'bb', 'cc', 'dd']>>> 'aa/nbb/ncc/ndd'.splitlines(keepends=True)['aa/n', 'bb/n', 'cc/n', 'dd']>>> 'aabbc'.startswith('a') #判斷字符串是否以某個字符開頭,可以是多字符True>>> 'aabbc'.startswith('b')False>>> 'aabbc'.startswith('aab')True>>> 'aaBBcc'.swapcase() #轉換大小寫'AAbbCC'>>> 'wend is ok'.title() #標題格式,首字母大寫,其它字符小寫'Wend Is Ok'>>> 'wend is ok'.upper() #將字符全部轉換成大寫'WEND IS OK'>>> 'wend is ok'.zfill(20) #這里的z指zero,用0將字符填充到指定長度'0000000000wend is ok'以上這篇python之Character string(實例講解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。
新聞熱點
疑難解答
圖片精選