走進Python世界(五)資料類型 2. 字串(String)

來源:互聯網
上載者:User

標籤:

字串String

使用引號定義的一組可以包含數字,字母,符號(非特殊系統符號)的集合。

如: 

Strval=“This is a test!”Strval1=‘This is a test!‘Strval2="""This is a test"""
三重引號(DocString)

Python三重引號允許字串跨越多行,包括逐字分行符號,定位字元和其他特殊字元。

三重引號文法由三個連續的單引號或雙引號。

#!/usr/bin/pythonpara_str = """this is a long string that is made up ofseveral lines and non-printable characters such asTAB ( \t ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ \n ], or just a NEWLINE withinthe variable assignment will also show up."""print para_str;

當執行上面的代碼中,產生以下結果。請注意如何每一個特殊字元被轉換到列印形式,一直到最後的分行符號之間的字串“up”結束閉三重引號。還要注意的是發生或者使用顯式斷行符號在一行或它的轉義代碼(\ n)的尾部的換行:

this is a long string that is made up ofseveral lines and non-printable characters such asTAB (    ) and they will show up that way when displayed.NEWLINEs within the string, whether explicitly given likethis within the brackets [ ], or just a NEWLINE withinthe variable assignment will also show up.



需要注意的是,python會認為 成對的引號之間的內容為字串內容。

如下面的例子 會有語法錯誤

say=’let‘s go’ File "<stdin>" , line1 say=’let‘s go’          ^ SyntaxError:invalid syntax


正確的做法是

如果只包含單引號: 使用雙引號來包含字串

如果包含單引號,雙引號: 使用雙引號來包含字串,並且字串內的雙引號用逸出字元 \ 來轉義

say=“let‘s \" go”


逸出字元

下表是未轉義非列印字元的列表,可以用反斜線符號來表示。

逸出字元被解釋;在一個單引號和雙引號字串。

反斜線 

符號

十六進位

字元

描述
\a 0x07 鈴聲或警報
\b 0x08 退格鍵
\cx
Control-x
\C-x
Control-x
\e 0x1b 轉義
\f 0x0c 換頁
\M-\C-x
Meta-Control-x
\n 0x0a 新一行
\nnn
八進位標記法,其中n的範圍為0.7
\r 0x0d 斷行符號
\s 0x20 空格
\t 0x09 Tab鍵
\v 0x0b 垂直製表
\x
字元x
\xnn
十六進位標記法,其中n的範圍是從0.9,a.f,或AF


字串特殊操作符
操作符 描述 例子
a= Hello b=Python
+ 串聯- 對操作符的兩側值增加

a + b 的值為 HelloPython

* 重複 - 建立新的字串,連結相同的字串的多個副本 a*2 的值為 -HelloHello
[] 切片- 從給定的索引字元指定 a[1] 的值為 e
[ : ]

範圍切片 - 給定的範圍內的字元

可以給定三個值,起始索引,結束索引,步長值

結束值的索引之前的會被取出來

省略起始索引,從0開始

省略結束索引,到末尾。

如果索引值為負數的話,則從末尾開始

步長值則表示,在切片範圍取值的時候沒間隔多少個字串取出一個字元,預設值為1

如果步長值為負數也可表示 從右往左取

a[1:4] 的值為 ell

a[:4]的值為Hell

a[1:]的值為ello

a[-4:-1]的值為ello

a[::2]的值Hlo

in 成員 - 如果一個字元存在給定的字串中,則返回true H in a 結果值為 1
not in 成員 - 如果輸入的字元不給定的字串中不存在,則返回true M not in a 結果值為 1
r/R 原始字串- 禁止逸出字元的實際意義。文法原始字串是完全一樣的一般字元串,除了原始的字串運算子,字母“r”,這之前的引號。在“r”可以小寫(r)或大寫字母(R)的,必須立即放置在第一引號前面。 print r‘\n‘ 列印 \n 並且 print R‘\n‘ 列印 \n


字串格式化操作

Python最酷的功能是字串格式運算子%。這種操作是唯一的字串,彌補了C語言的printf()系列函數功能。下面是一個簡單的例子:

#!/usr/bin/pythonprint "My name is %s and weight is %d kg!" % (‘Zara‘, 21)

當執行上面的代碼中,產生以下結果:

My name is Zara and weight is 21 kg!

下面是完整的,它可以與%符號使用列表:

格式符號 轉換
%c 字元
%s 通過str() 字串轉換來格式化
%i 有符號十進位整數
%d 有符號十進位整數
%u 無符號十進位整數
%o 八進位整數
%x 十六進位整數(小寫字母)
%X 十六進位整數(大寫字母)
%e 索引符號(小寫‘e‘)
%E 索引符號(大寫“E”)
%f 浮點實數
%g %f和%e 的簡寫
%G %f和%E的簡寫

其他支援的符號和功能如下表:

符號 功能
* 參數指定寬度和精度
- 靠左對齊
+ 顯示符號
<sp> 一個正數前留一個空格
# 添加前置字元為零(‘0‘)或十六進位前置0x“或”0X“,取決於”x“或”X“是否使用八進位。
0 從鍵盤左邊添加零(而不是空格)
% ‘%%‘給留下一個文字‘%‘
(var) 映射變數(字典參數)
m.n. m是最小的總寬度和n是數字,顯示小數點後的位元(如果appl)
Unicode字串

在Python一般字元串在內部儲存為8位ASCII,而Unicode字串被作為16位Unicode儲存。這使得一組字元更加多樣化,包括大多數語言在世界上的特殊字元。限制處理Unicode字串

#!/usr/bin/pythonprint u‘Hello, world!‘

當執行上面的代碼,產生以下結果:

Hello, world!

正如你所看到的,Unicode字串使用首碼 u,就像原始字串使用首碼 r


走進Python世界(五)資料類型 2. 字串(String)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.