Python3 字串
Python3 字串
字串是 Python 中最常用的資料型別。我們可以使用引號( ' 或 " )來建立字串。
建立字串很簡單,只要為變數分配一個值即可。例如:
var1 = 'Hello World!'
var2 = "itread01"
Python 訪問字串中的值
Python 不支援單字元型別,單字元在 Python 中也是作為一個字串使用。
Python 訪問子字串,可以使用方括號 [] 來擷取字串,字串的擷取的語法格式如下:
變數[頭下標:尾下標]
索引值以 0 為開始值,-1 為從末尾的開始位置。
如下例項:
例項(Python 3.0+)
#!/usr/bin/python3
var1 = 'Hello World!'
var2 = "itread01"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])
以上例項執行結果:
var1[0]: H var2[1:5]: unoo
Python 字串更新
你可以擷取字串的一部分並與其他欄位拼接,如下例項:
例項(Python 3.0+)
#!/usr/bin/python3
var1 = 'Hello World!'
print ("已更新字串 : ", var1[:6] + 'itread01!')
以上例項執行結果
已更新字串 : Hello itread01!
Python轉義字元
在需要在字元中使用特殊字元時,python 用反斜槓 \ 轉義字元。如下表:
轉義字元 | 描述 | 例項 |
---|---|---|
\(在行尾時) | 續行符 |
>>> print("line1 \ ... line2 \ ... line3") line1 line2 line3 >>> |
\\ | 反斜槓符號 |
>>> print("\\") \ |
\' | 單引號 |
>>> print('\'') ' |
\" | 雙引號 |
>>> print("\"") " |
\a | 響鈴 |
>>> print("\a")執行後電腦有響聲。 |
\b | 退格(Backspace) |
>>> print("Hello \b World!") Hello World! |
\000 | 空 |
>>> print("\000") >>> |
\n | 換行 |
>>> print("\n") >>> |
\v | 縱向製表符 |
>>> print("Hello \v World!") Hello World! >>> |
\t | 橫向製表符 |
>>> print("Hello \t World!") Hello World! >>> |
\r | 回車,將 \r 後面的內容移到字串開頭,並逐一替換開頭部分的字元,直至將 \r 後面的內容完全替換完成。 |
>>> print("Hello\rWorld!") World! >>> print('google itread01 taobao\r123456') 123456 itread01 taobao |
\f | 換頁 |
>>> print("Hello \f World!") Hello World! >>> |
\yyy | 八進位制數,y 代表 0~7 的字元,例如:\012 代表換行。 |
>>> print("\110\145\154\154\157\40\127\157\162\154\144\41") Hello World! |
\xyy | 十六進位制數,以 \x 開頭,y 代表的字元,例如:\x0a 代表換行 |
>>> print("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21") Hello World! |
\other | 其它的字元以普通格式輸出 |
Python字串運算子
下表例項變數 a 值為字串 "Hello",b 變數值為 "Python":
操作符 | 描述 | 例項 |
---|---|---|
+ | 字串連線 | a + b 輸出結果: HelloPython |
* | 重複輸出字串 | a*2 輸出結果:HelloHello |
[] | 通過索引獲取字串中字元 | a[1] 輸出結果 e |
[ : ] | 擷取字串中的一部分,遵循左閉右開原則,str[0:2] 是不包含第 3 個字元的。 | a[1:4] 輸出結果 ell |
in | 成員運算子 - 如果字串中包含給定的字元返回 True | 'H' in a 輸出結果 True |
not in | 成員運算子 - 如果字串中不包含給定的字元返回 True | 'M' not in a 輸出結果 True |
r/R | 原始字串 - 原始字串:所有的字串都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。 原始字串除在字串的第一個引號前加上字母 r(可以大小寫)以外,與普通字串有著幾乎完全相同的語法。 | print( r'\n' ) print( R'\n' ) |
% | 格式字串 | 請看下一節內容。 |
例項(Python 3.0+)
#!/usr/bin/python3
a = "Hello"
b = "Python"
print("a + b 輸出結果:", a + b)
print("a * 2 輸出結果:", a * 2)
print("a[1] 輸出結果:", a[1])
print("a[1:4] 輸出結果:", a[1:4])
if( "H" in a) :
print("H 在變數 a 中")
else :
print("H 不在變數 a 中")
if( "M" not in a) :
print("M 不在變數 a 中")
else :
print("M 在變數 a 中")
print (r'\n')
print (R'\n')
以上例項輸出結果為:
a + b 輸出結果: HelloPython a * 2 輸出結果: HelloHello a[1] 輸出結果: e a[1:4] 輸出結果: ell H 在變數 a 中 M 不在變數 a 中 \n \n
Python 字串格式化
Python 支援格式化字串的輸出 。儘管這樣可能會用到非常複雜的表示式,但最基本的用法是將一個值插入到一個有字串格式符 %s 的字串中。
在 Python 中,字串格式化使用與 C 中 sprintf 函式一樣的語法。
例項(Python 3.0+)
#!/usr/bin/python3
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
以上例項輸出結果:
我叫 小明 今年 10 歲!
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 是小數點後的位數(如果可用的話) |
Python2.6 開始,新增了一種格式化字串的函式 str.format(),它增強了字串格式化的功能。
Python三引號
python三引號允許一個字串跨多行,字串中可以包含換行符、製表符以及其他特殊字元。例項如下
例項(Python 3.0+)
#!/usr/bin/python3
para_str = """這是一個多行字串的例項
多行字串可以使用製表符
TAB ( \t )。
也可以使用換行符 [ \n ]。
"""
print (para_str)
以上例項執行結果為:
這是一個多行字串的例項 多行字串可以使用製表符 TAB ( )。 也可以使用換行符 [ ]。
三引號讓程式設計師從引號和特殊字串的泥潭裡面解脫出來,自始至終保持一小塊字串的格式是所謂的WYSIWYG(所見即所得)格式的。
一個典型的用例是,當你需要一塊HTML或者SQL時,這時用字串組合,特殊字串轉義將會非常的繁瑣。
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=https://www.big2gb.com/cn2tw0.php?url=https://www.itread01.com/python3/Back
ONCLICK="window.history.back()">