1. 程式人生 > >Python學習筆記(五)-- Python字串

Python學習筆記(五)-- Python字串

一、Python字串

 1、字串是 Python 中最常用的資料型別。我們可以使用引號('或")來建立字串。建立字串很簡單,只要為變數分配一個值即可。例如:

        var1 = 'Hello World!'
        var2 = "Python Runoob"

2、Python不支援單字元型別,單字元也在Python也是作為一個字串使用。Python訪問子字串,可以使用方括號來擷取字串,如下例項:

var1 = 'Hello World!'
var2 = "Python Runoob"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

輸出結果為:
var1[0]:  H
var2[1:5]:  ytho

由上述例項我們可知,使用方括號來擷取字串時,既可以擷取單個字元,也可以擷取多個字元。從第一個字元開始記為0,按順序擷取,擷取多個字元時,用第一個字元的順序:最後一個字元加1的順序擷取。

3、可以對已存在的字串進行修改,並賦值給另一個變數,如下例項:

var1 = 'Hello World!'

print "更新字串 :- ", var1[:6] + 'Runoob!'

輸出結果為:
更新字串 :-  Hello Runoob!


二、Python轉義字元

在需要在字元中使用特殊字元時,python用反斜槓(\)轉義字元。如下表:


三、Python字串運算子

下表例項變數 a 值為字串 "Hello",b 變數值為 "Python":


例項如下:

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字串格式化符號:

 

格式化操作符輔助符號:


如下例項:

print "My name is %s and weight is %d kg!" % ('Zara', 21) 

輸出結果為:
My name is Zara and weight is 21 kg!

五、Unicode 字串

1、計算機只能處理數字,如果要處理文字,就必須先把文字轉換為數字才能處理。Unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。Unicode標準也在不斷髮展,但最常用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代作業系統和大多數程式語言都直接支援Unicode。

      Python 中定義一個 Unicode 字串和定義一個普通字串一樣簡單:

>>> u'Hello World !'
u'Hello World !'

2、ASCII編碼和Unicode編碼的區別:
ASCII編碼是1個位元組,而Unicode編碼通常是2個位元組,舉例如下。
  字母 A 用ASCII編碼是十進位制的65,二進位制的01000001;
  字元 0 用ASCII編碼是十進位制的48,二進位制的00110000,注意字元 '0' 和整數   
0 是不同的;
  漢字 中 已經超出了ASCII編碼的範圍,用Unicode編碼是十進位制的20013,二進位制的01001110 00101101。
  如果把ASCII編碼的 A 用Unicode編碼,只需要在前面補0就可以,因此, A 的Unicode編碼是00000000 01000001。