1. 程式人生 > >小白學 Python(3):基礎資料型別(下)

小白學 Python(3):基礎資料型別(下)

人生苦短,我選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)
\000
\n 換行
\v 縱向製表符
\t 橫向製表符
\r 回車
\f 換頁
\oyy 八進位制數,yy 代表的字元,例如:\o12 代表換行,其中 o 是字母,不是數字 0。
\xyy 十六進位制數,yy代表的字元,例如:\x0a代表換行
\other 其它的字元以普通格式輸出

\n 換行:

print('I \nlike Python!')

\t 橫向製表符

print('I\tlike\tPython!')

那麼隨之而來的一個問題是,如果這個字串中真的是想列印 \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

示例程式碼-Gi