Python 基礎語法三-字串

image
字串(String)
字串(String),是由零個或多個字元組成的有限序列。一般記為 s=a[1]a[2]...a[n]。它是程式語言中表示文字的資料型別。
以上是維基百科中對字串的定義。
字串是字元的有序序列,在 python 中字串是以單引號 '
、雙引號 "
或三引號 '''
括起來的任意文字。
三引號內的字串可以分為多行。
>>> a = 'I am keinYe' >>> print(a) I am keinYe >>> b = "I am keinYe" >>> print(b) I am keinYe >>> c = ''' ...I ...am ...keinYe ...''' >>> print(c) I am keinYe >>>
既然單引號和雙引號在 python 中是定義字串的起始和停止條件,那麼如果要輸出含有單引號或雙引號的字串如何處理?首先說下這個完全沒有問題,不但沒有問題你還有兩種不同的選擇可以完成這個功能。
在單引號和雙引號的巢狀來實現輸出含有單引號或雙引號的字串
>>> print("What's your name?") What's your name? >>> print('"Hello keinYe!" is string!') "Hello keinYe!" is string!
使用轉義字元來輸出含有單引號或雙引號的字串
>>> print('What\'s your name?') What's your name? >>> print("\"Hello keinYe!\" is string!") "Hello keinYe!" is string!
如果字串中同時含有單引號和雙引號該怎麼處理呢?
print('What\'s your name?, \"Hello keinYe!\" is string!')
字串基本操作
從字串的定義可以看出字串是一種有序序列,因此字串具有如下操作:
- len() : 獲取字串長度
- + : 連線兩個字串
- * : 重複字串
- in : 判斷元素是否存在於序列中
- max() : 返回最大值
- min() : 返回最小值
- operator模組 :比較 2 個字串
len()
len() 函式用來獲取指定字串的長度,如下所示:
>>> a = 'Hello keinYe!' >>> length = len(a) >>> print(length) 13 >>> type(length) <class 'int'>
從以上示例可以看出 len() 函式返回的是字串的字元個數,且返回值是一個整形資料。
+
+ 用來連線(或拼接)兩個字串
>>> a = 'Hello ' >>> b = "World!" >>> c = a + b >>> print(c) Hello World!
*
* 用來重複字串 n 次,在特殊情況下這會相當有用
>>> a = "Hello " >>> b = a * 5 >>> print(b) Hello Hello Hello Hello Hello
in
從字面理解表示在...之內,在 python 中用來判斷一個字串是否包含在另一個字串內
>>> a = "Hello World!" >>> b = "Hello" >>> print(b in a) True >>> c = "hello" >>> print(c in a) False
max() 和 min()
max() 和 min() 用來獲取字串的最大值和最小值。
>>> a = "HelloWorld!" >>> max(a) r >>> min(a) !
operator模組
將兩個字串進行比較。
>>> str1 = "Hello World!" >>> str2 = "Hello keinYe!" >>> import operator >>> operator.lt(str1, str2) True >>> operator.le(str1, str2) True >>> operator.eq(str1, str2) False >>> operator.ne(str1, str2) True >>> operator.ge(str1, str2) False >>> operator.gt(str1, str2) False
字串輸出格式化
在使用字串的過程中,常常遇到需要動態更改字串中的某個位置的內容,比如根據輸入姓名輸出 Hello, name!
, 此時就需要用到字串輸出格式化,字串格式化怎麼理解呢?看一下內容
字串格式化化,就是要先制定一個模板,在這個模板中某個或者某幾個地方留出空位來,然後在那些空位填上字串。那麼,那些空位,需要用一個符號來表示,這個符號通常被叫做佔位符(僅僅是佔據著那個位置,並不是輸出的內容).
在 python 中常見的佔位符有以下幾種
佔位符 | 描述 |
---|---|
%s | 字串(採用 str()的顯示) |
%r | 字串(採用 repr()的顯示) |
%c | 單個字元 |
%b | 二進位制整數 |
%d | 十進位制整數 |
%i | 十進位制整數 |
%o | 八進位制整數 |
%x | 十六進位制整數 |
%e | 指數 (基底寫為 e) |
%E | 指數 (基底寫為 E) |
%f | 浮點數 |
%F | 浮點數,與上相同 |
%g | 指數(e)� 或浮點數 (根據顯示長度) |
%G | 指數(E)或浮點數 (根據顯示長度) |
看一下示例:
>>> print("Hello, %s!" %('keinYe')) Hello, keinYe! >>> year = 2018 >>> month = 11 >>> day = 28 >>> print("今天是 %d 年 %d 月 %d 日" %(year, month, day)) 今天是 2018 年 11 月 28 日 >>> PI = 3.1415926 >>> print('π = %f' %PI) π = 3.141593 >>> print('π = %3.2f' %PI) π = 3.14 >>> print('π = %3.8f' %PI) π = 3.14159260
在 python 中還有另外一種字串格式化方法,那就是 string.format()方法,在該方法中使用 {} 作為佔位符。
這種方法真的是非常好,而且非常簡單,只需要將對應的東西,按照順序在 format 後面的括號中排列好,分別對應占位符 {} 即可。
>>> str = "I like {}".format('python') >>> print(str) I like python >>> str = '今天是 {} 年 {} 月 {} 日'.format(2018, 11, 28) >>> print(str) 今天是 2018 年 11 月 28 日 >>> print('π = {}'.format(3.1415926)) π = 3.1415926
使用 string.format() 方法讓你可以不必關心資料型別,使用 {}
作為通用佔位符無論最終索要填充的是什麼內容都可以正常工作。