小白學 Python(3):基礎數據類型(下)

  • 2019 年 10 月 22 日
  • 筆記

人生苦短,我選Python

引言

前文傳送門

小白學 Python(1):開篇

小白學 Python(2):基礎數據類型(上)

前面我們介紹過了數字,本篇我們接著聊另一個常用的基礎數據類型:字元串。

什麼是字元串?

字元串是由字元組成的一串有限序列,如: ‘geekdigging’ 、 "geekdigging" ,當然,符號也是可以的,如: ‘https://www.geekdigging.com/‘ 、 "https://www.geekdigging.com/" 。

注意: ” 或者 "" 表示的是空字元串,空字元串和 null 是不一樣的。

字元串外面的包裹可以是單引號,也可以是雙引號,需要注意的是單引號和雙引號一定是成對出現的,不可混合使用,如果你一定要混合使用的話,PyCharm 會報語法錯誤的,紅色的波浪線你看到會倍感親切。

示例如下:

print('www.geekdigging.com')    // 輸出結果:www.geekdigging.com    print("www.geekdigging.com")    // 輸出結果:www.geekdigging.com

當然,也會有混合使用的時候,如果小明說了一句話,這句話的內容中含有雙引號怎麼辦,示例如下:

print('小明說:"吃了嗎?"')    // 輸出結果:小明說:"吃了嗎?"

上面的示例外部使用的是單引號,如果在外面也使用雙引號怎麼辦,會報錯的啊:

不要擔心, Python 肯定考慮到這一點了,因為 Python 識別程式是從左向右識別的,所以我們中間的一段內容 吃了嗎? 會因為沒有雙引號的包裹而導致了報錯。我們可以使用轉義符號 來告訴 Python 中間的雙引號並不是代表字元串的符號,是我們想要列印的符號,示例程式碼如下:

print("小明說:"吃了嗎?"")    // 輸出結果:小明說:"吃了嗎?"

還可以使用連續三個單引號或者雙引號,它可以使得中間被包裹起來的一個字元串跨多行,字元串中可以包含換行符、製表符以及其他特殊字元,示例如下:

print('''  這是一個多行字元串的實例  多行字元串可以使用製表符  TAB ( t )。  也可以使用換行符 [ n ]。  ''')

列印結果如圖:

轉義

從字面意思理解轉義就是轉換含義,通俗來講就是含義變了。

具體 Python 支援的轉義字元如下表:

轉義字元 描述
(在行尾時) 續行符
反斜杠符號
單引號
" 雙引號
a 響鈴
b 退格(Backspace)
00
n 換行
v 縱向製表符
t 橫向製表符
r 回車
f 換頁
oyy 八進位數,yy 代表的字元,例如:o12 代表換行,其中 o 是字母,不是數字 0。
xyy 十六進位數,yy代表的字元,例如:x0a代表換行
other 其它的字元以普通格式輸出

n 換行:

print('I nlike Python!')

t 橫向製表符

print('ItliketPython!')

那麼隨之而來的一個問題是,如果這個字元串中真的是想列印 t ,而並不是把它當做一個橫向製表符該怎麼辦呢?有兩種解決方案,示例如下:

print("橫向製表符:\t")  // 輸出結果:橫向製表符:t    print(r"橫向製表符:t")  // 輸出結果:橫向製表符:t
  • 第一種是在轉義符號前面再加一個轉義符號 ,負負得正。
  • 第二種是在這個字元串的外面加一個 r (大小寫均可)。

常用方法

獲取字元串長度:

獲取字元串長度 Python 為我們提供了一個 len() 的方法,示例如下:

print(len('I like Python!'))  // 輸出結果:14    print(len('I like 小明!'))  // 輸出結果:10    print(len(''))  // 輸出結果:0    print(len(' '))  // 輸出結果:1    print(len("n"))  // 輸出結果:1
  • 中文,字母,數字,符號都是佔一個長度。
  • 字元串中的空格也是占長度的。
  • 空字元串的長度為0

字元串拼接

字元串拼接可以使用符號 + ,示例如下:

a = "Hello"  b = "Python"    print("a + b 輸出結果:", a + " " + b)  // a + b 輸出結果: Hello Python

重複輸出字元串

字元串拼接可以使用符號 * ,示例如下:

print("a * 2 輸出結果:", a * 2)  // a * 2 輸出結果: HelloHello

通過索引獲取字元串中字元

如果把字元串中的每個字元看做在排隊的話,那麼索引就是這個字元的位置,第一個字元的索引為 0 ,示例如下:

print("a[1] 輸出結果:", a[1])  // a[1] 輸出結果: e

截取字元串

在 Java 中,截取字元串給了一個方法是 substring ,而在 Python 中則直接使用 [:] 這個表達式即可,遵循左閉右開原則,示例如下:

print("a[1:4] 輸出結果:", a[1:4])  // a[1:4] 輸出結果: ell

包含

成員運算符 in 可以判斷一個字元串種是否包含指定的字元串,並返回 true 或者 false 布爾值。示例如下:

if "H" in a:      print("H 在變數 a 中")  else:      print("H 不在變數 a 中")    // H 在變數 a 中

不包含

既然有了包含那一定就會有不包含,不包含的成員運算符是 not in ,返回同樣是布爾值。示例如下:

if "M" not in a:      print("M 不在變數 a 中")  else:      print("M 在變數 a 中")    // M 不在變數 a 中

示例程式碼

本系列的所有程式碼小編都會放在程式碼管理倉庫 Github 和 Gitee 上,方便大家取用。

示例程式碼-Github

示例程式碼-Gitee