生活随笔
收集整理的這篇文章主要介紹了
Python 字符串笔记(转自木木)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用字符串
Table of Contents
- 1 基本字符串操作
- 2 字符串格式化:精簡版
- 2.1 用字符串格式化操作符
- 2.2 用string的Template格式化字符串
- 3 字符串格式化:完整版
- 3.1 轉換說明符
- 3.2 簡單轉換
- 3.3 字段寬度和精度
- 3.4 符號,對齊和 0 填充
- 4 字符串方法
- 4.1 find
- 4.2 join
- 4.3 lower
- 4.4 replace
- 4.5 split
- 4.6 strip
- 4.7 translate
1 基本字符串操作
說明:字符串也是序列的一種,所以分片,乘法,索引,求長度,最大, 最小,判斷成員資格等都可以應用在字符串上;注意:字符串是不可變的,所以不能對其進行賦值;例子 1: >>> mystr="Test string"2: >>> mystr[0] = 't'3: Traceback (most recent call last):4: File "<pyshell#1>", line 1, in <module>5: mystr[0] = 't'6: TypeError: 'str' object does not support item assignment7: >>> 2 字符串格式化:精簡版
2.1 用字符串格式化操作符
說明:字符串格式化使用字符串格式化操作符百分號( % )實現,在操作符的左側是格式化字符串,右側是希望被格式化的值;注意:只有元組和字典可以被格式化為一個以上的值,列表和其他序列會被格式化為一個值;轉換說明符,用于標記需要插入轉換值的位置;如果在格式化字符串中要輸出百分號,則需要使用 %%例子: 1: #一般格式化 2: >>> myformat = "Hello, my name is %s %s" 3: >>> name = ('Bill','Gunn') 4: >>> print (myformat % name) 5: Hello, my name is Bill Gunn 6: >>> 7: 8: #用列表格式化 9: >>> myformat = 'Hello, my name is %s'10: >>> name=['Bill', 'Gunn']11: >>> print(myformat % name)12: Hello, my name is ['Bill', 'Gunn']13: 14: #打印浮點數15: >>> import math16: >>> print ("PI = %.5f" % pi)17: PI = 3.1415918: 19: #打印百分號20: >>> print("%.2f%%"% 22.3)21: 22.30%22: >>> 2.2 用string的Template格式化字符串
說明:類似于Unix Shell中的變量替換,使用substitute方法,將字符串 模板中的$foo替換為傳遞進來的參數foo例子: 1: #從string模塊中導入Template 2: >>> from string import Template 3: #創建模板 4: >>> myformat = Template("My name is $name") 5: #替換變量并打印 6: >>> print(myformat.substitute(name="Bill Gunn")) 7: My name is Bill Gunn 8: >>> 9: 10: #輸出美元符號的方法,在模板里輸入兩個$11: >>> mytemplate = Template("The price is $$$price")12: >>> mytemplate.substitute(price=100)13: 'The price is $100'14: >>>15: 16: #如果參數與后面的字符串相連,需要用大括號將其括起來17: >>> from string import Template18: >>> mytemplate = Template("It's ${x}tastic!")19: >>> mytemplate.substitute(x='slum')20: "It's slumtastic!"21: >>>22: 23: #使用字典替換參數24: >>> mytemplate = Template("My $property is $value")25: >>> name = {}26: >>> name["property"] = "name"27: >>> name["value"] = "Bill Gunn"28: >>> mytemplate.substitute(name)29: 'My name is Bill Gunn'30: >>>31: 3 字符串格式化:完整版
說明:字符串格式化操作符的右操作數如果是元組,那么在格式化字符串 中必須將元組中的各個元素都有對應的轉義說明符。例子: 1: >>> data = tuple(list("123")) 2: >>> data 3: ('1', '2', '3') 4: #格式化字符串中只有一個轉義說明符,而元組中有三個元素,轉換會報錯 5: >>> print ("data is %s" % data) 6: Traceback (most recent call last): 7: File "<pyshell#18>", line 1, in <module> 8: print ("data is %s" % data) 9: TypeError: not all arguments converted during string formatting10: #顯示元組中的全部元素11: >>> print ("data is %s %s %s" % data)12: data is 1 2 313: >>>14: 3.1 轉換說明符
轉換說明符 轉義說明符含義
| d,i | 帶符號的十進制整數 |
| o | 不帶符號的八進制 |
| u | 不帶符號的十進制 |
| x | 不帶符號的十六進制(小寫) |
| X | 不帶符號的十六進制(大寫) |
| e | 科學計數法的浮點數(小寫) |
| E | 科學計數法的浮點數(大寫) |
| f,F | 十進制浮點數 |
| g | 如果指數大于-4或者小于精度值則和e相同,否則和f相同 |
| G | 如果指數大于-4或者小于精度值則和E相同,否則和F相同 |
| C | 單字符(接受整數或者單字符字符串) |
| r | 字符串(使用repr轉換任意Python對象) |
| s | 字符串(使用str轉換任意Python對象) |
3.2 簡單轉換
例子: 1: #十進制整數 2: >>> print ("The price is $%d" % 12) 3: The price is $12 4: 5: #十六進制整數 6: >>> print ("Hex %x" % 12) 7: Hex c 8: 9: #八進制整數10: >>> print ("Oct %o" % 12)11: Oct 1412: >>>13: 3.3 字段寬度和精度
說明:字段寬度:轉換后的值所保留的最小字符個數;字段精度:轉換后,結果中應該的小數位數;可以使用*作為字段寬度或者精度例子: 1: #限制寬度 2: >>> "%10f" % math.pi 3: ' 3.141593' 4: 5: #限制小數位數 6: >>> "%5.2f" % math.pi 7: ' 3.14' 8: 9: #用星號限制寬度和精度,下例中,寬度為10,精度為510: >>> '%*.*s' % (10, 5, 'adfasdfadsfasdfasdfasdf')11: ' adfas'12: >>>13: 3.4 符號,對齊和 0 填充
說明:零:寬度不夠時用數字0填充;負號:左對齊;正號:不管是正數還是負數都標記出符號空格:寬度不夠時用空格填充;例子: 1: #空白補0 2: >>> print ("%010f" % math.pi) 3: 003.141593 4: 5: #左對齊 6: >>> "%-10.2f" % math.pi 7: '3.14 ' 8: 9: #空白右對齊10: >>> print("% 5d\n% 5d" % (123, 12))11: 12312: 1213: 14: #顯示正負符號15: >>> print ("%+5d\n%+5d" % (123, -123))16: +12317: -12318: >>>19: 4 字符串方法
4.1 find
說明:用于在長字符串中查找子字符串,如果找到,則返回子字符串在左 側第一次出現的索引,沒找到返回-1,在查找時,還可以指定在長字符串 中查找的范圍,提供起始索引和結束索引作為查找的參數;注意:查找時,包括起始索引位置,但是不包括結束索引的位置;例子: 1: >>> string.ascii_letters 2: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 3: >>> letters = string.ascii_letters 4: >>> letters.find('AB') 5: 26 6: >>> letters.find('X',30,-1) 7: 49 8: >>> letters.find("AB",26) 9: 2610: 4.2 join
說明:將隊列中的元素用字符串連接起來,并且列表中的元素必須是字符 串;例子: 1: >>> data = list('123456')2: >>> data3: ['1', '2', '3', '4', '5', '6']4: >>> "AB".join(data)5: '1AB2AB3AB4AB5AB6'6: >>> 7: 4.3 lower
說明:將字符串轉換成小寫字母,并返回,但是原字符串不改變;例子: 1: >>> mystr="ABCD"2: >>> mystr.lower()3: 'abcd'4: >>> mystr5: 'ABCD'6: >>> 7: 4.4 replace
說明:返回所有匹配項都被替換之后的字符串例子: 1: >>> mystr = "My name is Geng Qi"2: >>> mystr.replace("Geng Qi", "Bill Gunn")3: 'My name is Bill Gunn'4: >>> 4.5 split
說明:將字符串分割成序列;注意:如果不提供分割符,則會將空白符當作分割符;例子 1: #以加號為分割符 2: >>> mystr = "1+2+3+4+5+6" 3: >>> mystr.split('+') 4: ['1', '2', '3', '4', '5', '6'] 5: 6: #不提供分割符時,以空白符為分割符 7: >>> mystr = "This is a test string" 8: >>> mystr.split() 9: ['This', 'is', 'a', 'test', 'string']10: >>> 11: 4.6 strip
說明:去除兩側的空白,也可以去除指定的字符;例子: 1: >>> mystr = " asdfad adfasf asdf " 2: >>> mystr 3: ' \tasdfad adfasf asdf \t\t' 4: #去除空白符 5: >>> mystr.strip() 6: 'asdfad adfasf asdf' 7: 8: #去除指定字符 9: >>> mystr.strip('\t')10: ' \tasdfad adfasf' asdf '11: >>> 12: 4.7 translate
說明:translate是單字替換,可以同時替換多個字符例子: 1: >>> table = str.maketrans('cs', 'kz')2: >>> table3: {115: 122, 99: 107}4: >>> "Please don't knock at my door!".translate(table)5: "Pleaze don't knokk at my door!"6:
轉載于:https://www.cnblogs.com/iwangzc/articles/4031144.html
總結
以上是生活随笔為你收集整理的Python 字符串笔记(转自木木)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。