《笨辦法學Python》筆記8-----字符串和文本

字符串是python中常見數據類型,應用非常廣泛。

python不支持單字符類型,單字符類型在python中以字符串形式存在。

一般用雙引號引起來,也可以用單引號和雙引號表示,但三引號在python中還有其他意義,python三引號允許一個字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符。但三引號引起的字符串未賦值給任何變量時,python會將其視為一段注釋而在運行時忽略。

一、代碼

#coding:utf-8

x = "There are %d types of people." % 10

binary = "binary"

do_not = "don't"

y = "Those who know %s and those who %s." % (binary,do_not)

print x

print y

print "I said: %r." % x

print "I also said: '%s'." % y

#布爾值,False中的F不能小寫

hilarious = False

joke_evaluation = "Isn't that joke so funny?! %r"

print joke_evaluation % hilarious

#字符串類型與布爾類型不能相加

#print joke_evaluation + hilarious

w = "This is the left side of..."

e = "a string with a right side."

#輸出,字符串與字符串可以相加

print w + e

格式化字符串在上一筆記中已經提過。

兩個或多個字符串可以使用“+”連接。

一段字符的開始和末尾需使用同樣的引號,如以單引號開始必須以單引號結束。否則將報出語法異常:

SyntaxError: EOL while scanning string literal

在一段字符串之間需輸出引號時,該引號應與前后引號進行區別,如前后以雙引號開始結束,則此字符串之間不能直接使用雙引號,否則將報出語法異常:

SyntaxError: invalid syntax

而需要使用轉義字符進行輸出。


二、轉義字符

在需要在字符中使用特殊字符時,python用反斜杠(\)轉義字符。

\ ? ? ? ? ? (在行尾時) 續行符

\\ ? ? ? ? ?反斜杠符號

\' ? ? ? ? ? 單引號

\" ? ? ? ? ? 雙引號

\a ? ? ? ? ?響鈴

\b ? ? ? ? ?退格(Backspace)

\e ? ? ? ? ?轉義

\000 ? ? ?空

\n ? ? ? ? ?換行

\v ? ? ? ? ?縱向制表符

\t ? ? ? ? ?橫向制表符

\r ? ? ? ? ?回車

\f ? ? ? ? ?換頁

\oyy ? ? ?八進制數,yy代表的字符,例如:\o12代表換行

\xyy ? ? ?十六進制數,yy代表的字符,例如:\x0a代表換行

\other ? 其它的字符以普通格式輸出


三、字符串的操作

python中字符串的操作非常豐富,python本身提過了一些內置函數供調用。

string.capitalize()

把字符串的第一個字符大寫

string.center(width)

返回一個原字符串居中,并使用空格填充至長度 width 的新字符串

string.count(str, beg=0, end=len(string))

返回 str 在 string 里面出現的次數,如果 beg 或者 end 指定則返回指定范圍內 str 出現的次數

string.decode(encoding='UTF-8', errors='strict')

以 encoding 指定的編碼格式解碼 string,如果出錯默認報一個 ValueError 的 異 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'

string.encode(encoding='UTF-8', errors='strict')

以 encoding 指定的編碼格式編碼 string,如果出錯默認報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace'

string.endswith(obj, beg=0, end=len(string))

檢查字符串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的范圍內是否以 obj 結束,如果是,返回 True,否則返回 False.

string.expandtabs(tabsize=8)

把字符串 string 中的 tab 符號轉為空格,默認的空格數 tabsize 是 8.

string.find(str, beg=0, end=len(string))

檢測 str 是否包含在 string 中,如果 beg 和 end 指定范圍,則檢查是否包含在指定范圍內,如果是返回開始的索引值,否則返回-1

string.index(str, beg=0, end=len(string))

跟find()方法一樣,只不過如果str不在 string中會報一個異常.

string.isalnum()

如果 string 至少有一個字符并且所有字符都是字母或數字則返回 True,否則返回 False

string.isalpha()

如果 string 至少有一個字符并且所有字符都是字母則返回 True,否則返回 False

string.isdecimal()

如果 string 只包含十進制數字則返回 True 否則返回 False.

string.isdigit()

如果 string 只包含數字則返回 True 否則返回 False.

string.islower()

如果 string 中包含至少一個區分大小寫的字符,并且所有這些(區分大小寫的)字符都是小寫,則返回 True,否則返回 False

string.isnumeric()

如果 string 中只包含數字字符,則返回 True,否則返回 False

string.isspace()

如果 string 中只包含空格,則返回 True,否則返回 False.

string.istitle()

如果 string 是標題化的(見 title())則返回 True,否則返回 False

string.isupper()

如果 string 中包含至少一個區分大小寫的字符,并且所有這些(區分大小寫的)字符都是大寫,則返回 True,否則返回 False

string.join(seq)

Merges (concatenates)以 string 作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個新的字符串

string.ljust(width)

返回一個原字符串左對齊,并使用空格填充至長度 width 的新字符串

string.lower()

轉換 string 中所有大寫字符為小寫.

string.lstrip()

截掉 string 左邊的空格

string.maketrans(intab, outtab])

maketrans() 方法用于創建字符映射的轉換表,對于接受兩個參數的最簡單的調用方式,第一個參數是字符串,表示需要轉換的字符,第二個參數也是字符串表示轉換的目標。

max(str)

返回字符串 str 中最大的字母。

min(str)

返回字符串 str 中最小的字母。

string.partition(str)

有點像 find()和 split()的結合體,從 str 出現的第一個位置起,把 字 符 串 string 分 成 一 個 3 元 素 的 元 組 (string_pre_str,str,string_post_str),如果 string 中不包含str 則 string_pre_str == string.

string.replace(str1, str2,? num=string.count(str1))

把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.

string.rfind(str, beg=0,end=len(string) )

類似于 find()函數,不過是從右邊開始查找.

string.rindex( str, beg=0,end=len(string))

類似于 index(),不過是從右邊開始.

string.rjust(width)

返回一個原字符串右對齊,并使用空格填充至長度 width 的新字符串

string.rpartition(str)

類似于 partition()函數,不過是從右邊開始查找.

string.rstrip()

刪除 string 字符串末尾的空格.

string.split(str="", num=string.count(str))

以 str 為分隔符切片 string,如果 num有指定值,則僅分隔 num 個子字符串

string.splitlines(num=string.count('\n'))

按照行分隔,返回一個包含各行作為元素的列表,如果 num 指定則僅切片 num 個行.

string.startswith(obj, beg=0,end=len(string))

檢查字符串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定范圍內檢查.

string.strip([obj])

在 string 上執行 lstrip()和 rstrip()

string.swapcase()

翻轉 string 中的大小寫

string.title()

返回"標題化"的 string,就是說所有單詞都是以大寫開始,其余字母均為小寫(見 istitle())

string.translate(str, del="")

根據 str 給出的表(包含 256 個字符)轉換 string 的字符,要過濾掉的字符放到 del 參數中

string.upper()

轉換 string 中的小寫字母為大寫

string.zfill(width)

返回長度為 width 的字符串,原字符串 string 右對齊,前面填充0

string.isdecimal()

isdecimal()方法檢查字符串是否只包含十進制字符。這種方法只存在于unicode對象。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容