字符串輸出
在 Python 中,字符串是一種不可變的序列數據類型。它是包含在單引號、雙引號或三引號內的 Unicode 字符序列。
以下是 Python 中的有效字符串:
'This is a string in Python' "This is a string in Python" '''This is a string in Python''' """This is a string in Python"""
字符串可以賦給變量,如下所示。
str1='This is a string in Python' print(str1) str2="This is a string in Python" print(str2)
輸出:
This is a string in Python This is a string in Python
多行字符串必須嵌入三重引號,如下所示。
str1='''多行(三重單引號) 字符串 Multi-line string. ''' print(str1) str2="""多行(三重雙引號) 字符串 Multi-line string.""" print(str2)
輸出:
多行(三重單引號) 字符串 Multi-line string. 多行(三重雙引號) 字符串 Multi-line string.
如果字符串中含有雙引號,則輸出字符串時,要用單引號包圍進行輸出。反之,如果字符串中含有單引號,則需要用雙引號包圍進行輸出。
如果同時使用單引號或者雙引號,則需要將,字符串內部的引號進行轉移。
str1='學習python就來"www.fke6.com"' print(str1) str2="學習python就來'www.fke6.com'" print(str2)
輸出:
Welcome to 學習python就來"www.fke6.com" Welcome to 學習python就來'www.fke6.com'
下面來看下在同時使用單引號或者雙引號時,如何輸出字符串
str3='學習python就來'www.fke6.com'' print(str3) #此時程序會報語法錯誤: #SyntaxError: invalid syntax #正確寫法: str3='學習python就來\'www.fke6.com\'' str4="學習python就來\"www.fke6.com\""
字符串索引
使用len()
函數檢索字符串的長度,如下所示。
>>> str1='nihao' >>> len(str1) 5
序列被定義為有序的項目集合。因此,字符串是字符的有序集合。該序列使用一個索引,從零開始從其中獲取某個項目(在字符串的情況下是一個字符)。
>>> str1='nihao' >>> str1[0] 'n' >>> str1[1] 'i' >>> str1[2] 'h' >>> str1[3] 'a' >>> str1[4] 'o' >>> str1[5] # throw error if index > len(string)-1 Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> str1[5] IndexError: string index out of range
Python 也支持負索引,從-(字符串長度)到-1。
>>> str2='hello' >>> str2[-5] 'n' >>> str2[-4] 'i' >>> str2[-3] 'h' >>> str2[-2] 'a' >>> str2[-1] 'o'
字符串是一個不可變的對象。因此,不可能對其進行直接修改。試圖在某個索引處分配不同的字符會導致錯誤。
>>> str3='nihao' >>> str3[0]='A' Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> str3[0]='A' TypeError: 'str' object does not support item assignment
字符串類
所有字符串都是 Python 中str
類的對象。
>>> greet='hello' >>> type(greet) <class 'str'>
使用str()
功能將數字轉換為字符串。
>>> str(100) '100' >>> str(-10) '-10' >>> str(True) 'True'
轉義序列
轉義字符用于調用序列中后續字符的替代實現。在 Python 中,反斜杠\
用作轉義字符。使用反斜杠字符,后跟要插入到字符串中的字符,例如\'
在字符串中包含引號,或者\"
在字符串中包含雙引號,如下所示。
str1='Welcome to \'Python Tutorial\' on TutorialsTeacher' print(str1) str2="Welcome to \"Python Tutorial\" on TutorialsTeacher" print(str2)
Output:
Welcome to 'Python Tutorial' from TutorialsTeacher Welcome to "Python Tutorial" on TutorialsTeacher
使用r
或R
忽略字符串中的轉義序列。
str1=r'Welcome to \'Python Tutorial\' on TutorialsTeacher' print(str1)
Output:
Welcome to \'Python Tutorial\' from TutorialsTeacher
下表列出了 Python 中的轉義序列。
轉義序列 | 描述 | 例子 |
---|---|---|
\\ | 反斜杠 |
>>> "你好\\你好" 你好\你好 |
\b | 退格 |
>>> "ab\bc" 交流 |
\F | 換頁 | |
\n | 新隊 |
>>> "hello\nworld" 你好 世界 |
\nnn | 八進制表示法,其中 n 在 0-7 范圍內 |
>>> '\101' 一個 |
\t | 標簽 |
>>> 'Hello\tPython' 你好 Python |
\xnn | 十六進制表示法,其中 n 在 0-9、af 或 AF 范圍內 |
>>> '\x48\x69' 你好 |
\onn | 八進制表示法,其中 n 在 0-9 范圍內 |
>>> "\110\151" 你好 |
T2【你好】 T3】世界 | | \nnn | 八進制記數法,其中 n 在 0-7 范圍內 | > > > ' \101' A | | \t | 標簽 | > > > ' Hello \ tPython ' Hello Python | | \xnn | 十六進制表示法,其中 n 在 0-9、a-f 或 A-F 的范圍內 | > > > ' \x48\x69' 嗨 | | \ n | 八進制記數法,其中 n 在 0-9 范圍內 | > > > " \110\151" 嗨 |
字符串運算符
顯然,算術運算符不對字符串進行操作。但是,字符串處理有特殊的運算符。
操作員 | 描述 | 例子 |
---|---|---|
+ | 將第二個字符串追加到第一個字符串之后 | > > > a= '你好' |
字符串方法
方法 | 描述 |
---|---|
str .大寫()T2】 | 返回字符串的副本,其第一個字符大寫,其余字母小寫。 |
弦折()T2】 | 返回一個小寫字符串。它類似于 lower()方法,但 casefold()方法將更多字符轉換為小寫。 |
弦.中()T2】 | 返回一個新的指定長度的居中字符串,該字符串用指定的字符填充。最可怕的特征是空間。 |
弦長()T2】 | 搜索(區分大小寫)給定字符串中的指定子字符串,并返回一個指示該子字符串出現的整數。 |
string . endcom() | 如果字符串以指定的后綴(區分大小寫)結尾,則返回真,否則返回假。 |
T2 | 根據前面的字符數和指定的制表符大小,返回一個字符串,所有制表符\t 都用一個或多個空格替換。 |
string.find() | 返回給定字符串中第一個出現的子字符串的索引(區分大小寫)。如果沒有找到子字符串,它將返回-1。 |
string . index()T2】 | 返回給定字符串中第一個出現的子字符串的索引。 |
string . is lnum() | 如果字符串中的所有字符都是字母數字(字母或數字),則返回 True。如果不是,則返回假。 |
string.isalpha() | 如果字符串中的所有字符都是字母(小寫和大寫),則返回 True 如果至少有一個字符不是字母,則返回 False。 |
【string . isascii() | 如果字符串為空或字符串中的所有字符都是 ASCII 字符,則返回 True。 |
string . is descimal()T2】 | 如果字符串中的所有字符都是十進制字符,則返回 True。如果不是,則返回假。 |
string . isdigt() | 如果字符串中的所有字符都是數字或數字的 Unicode 字符,則返回 True。如果不是,則返回假。 |
string . isi identifier() | 檢查字符串是否是有效的標識符字符串。如果字符串是有效的標識符,則返回真,否則返回假。 |
string . ispower() | 檢查給定字符串的所有字符是否都是小寫的。如果所有字符都是小寫,則返回真;如果一個字符是大寫,則返回假。 |
string . is numeric()T2】 | 檢查字符串中的所有字符是否都是數字字符。如果所有字符都是數字,它將返回真,即使一個字符是非數字,它也將返回假。 |
string . is printable()T2】 | 如果給定字符串的所有字符都是可打印的,則返回 True。即使有一個字符不可打印,它也會返回 False。 |
string . isspace()T2】 | 如果給定字符串的所有字符都是空格,則返回 True。即使一個字符不是空白,它也會返回 False。 |
string . isttle() | 檢查每個單詞的第一個字符是否大寫,其余字符是否小寫。如果字符串有標題,則返回真;否則,它返回 False。符號和數字被忽略。 |
string.isupper() | 如果所有字符都是大寫,則返回真;如果一個字符不是大寫,則返回假。 |
string . join()T2】 | 返回一個字符串,它是字符串(在其上調用它)與指定 iterable 的字符串元素作為參數的串聯。 |
字符串.光()T2 | 返回指定寬度的左對齊字符串。如果指定的寬度大于字符串長度,則字符串的剩余部分用指定的 fillchar 填充。 |
弦長()T2】 | 返回原始字符串的副本,其中所有字符都轉換為小寫。 |
string . lsrip() | 通過刪除指定為參數的前導字符返回字符串的副本。 |
string.maketrans() | 返回一個映射表,該表將給定字符串中的每個字符映射到同一位置的第二個字符串中的字符。此映射表與 translate()方法一起使用,該方法將根據映射表替換字符。 |
弦.分區()T2】 | 在第一次出現指定的字符串分隔符 sep 參數時拆分字符串,并返回包含三個元素的元組,即分隔符之前的部分、分隔符本身和分隔符之后的部分。 |
string . replace()T2】 | 返回字符串的副本,其中一個子字符串的所有匹配項都被另一個子字符串替換。 |
string . rfnd() | 返回給定字符串中指定子字符串的最高索引(子字符串的最后一次出現)。 |
string . rinex() | 返回給定字符串中最后一次出現的子字符串的索引。 |
string . rust() | 返回指定寬度的右對齊字符串。如果指定的寬度大于字符串長度,則字符串的剩余部分用指定的填充字符填充。 |
string . rpartition()T2】 | 在指定字符串分隔符 sep 參數的最后一次出現處拆分字符串,并返回包含三個元素的元組,即分隔符之前的部分、分隔符本身和分隔符之后的部分。 |
string . rslit() | 從指定的分隔符拆分字符串,并返回包含字符串元素的列表對象。 |
string . rstrip()T2】 | 通過刪除指定為參數的尾隨字符,返回字符串的副本。 |
string . split()T2】 | 從指定的分隔符拆分字符串,并返回包含字符串元素的列表對象。 |
string . splitlines()T2】 | 在行邊界處拆分字符串,并返回字符串中的行列表。 |
string.startswith() | 如果字符串以指定的前綴開頭,則返回 True。如果不是,則返回假。 |
string . strip()T2】 | 通過刪除前導和尾隨字符返回字符串的副本。 |
string.swapcase() | 返回字符串的副本,大寫字符轉換為小寫字符,反之亦然。符號和字母被忽略。 |
string.title() | 返回一個字符串,其中每個單詞以大寫字符開頭,其余字符為小寫字符。 |
string.translate() | 返回一個字符串,其中每個字符都映射到翻譯表中相應的字符。 |
弦上()T2】 | 返回大寫的字符串。符號和數字不受影響。 |
張弦()T2】 | 返回左側填充有“0”字符的字符串副本。它在字符串的開頭添加零(0),直到字符串的長度等于指定的寬度參數。 |