Python - 基本資料型別_str 字串

小菠蘿測試筆記發表於2021-07-18

前言

字串是程式設計中最重要的資料型別,也是最常見的

 

字串的表示方式

  • 單引號 ' ' 
  • 雙引號 " " 
  • 多引號 """ """"  、 ''' ''' 
print("hello world")
print('hello world')
print("""hello world""")

# 輸出結果
hello world
hello world
hello world

 

為什麼需要單引號,又需要雙引號

因為可以在單引號中包含雙引號,或者在雙引號中包含單引號

# 單雙引號
print("hello 'poloyy' world")
print('this is my name "poloyy"')

# 輸出結果
hello 'poloyy' world
this is my name "poloyy"

 

多行字串

正常情況下,單引號和雙引號的字串是不支援直接在符號間換行輸入的,如果有需要可以用多引號哦!

# 多行字串
print("""
hello
world
""")
print("""
this
is
my
name
poloyy
""")

# 輸出結果
hello
world

this
is
my
name
poloyy

 

轉義符

在字元前加 \ 就行

常見的有

  • \n:換行
  • \t:縮排
  • \r:回車

 

栗子

比如在字串雙引號間還有一個雙引號,就需要用轉義符

# 轉義符
print("hello \"poloyy\" world")
print('my name is \'poloyy\'')

# 輸出結果
hello "poloyy" world
my name is 'poloyy'

 

假設 \ 只想當普通字元處理呢?

print("反斜槓 \\ 是什麼")
print("換行符是什麼 \\n")

# 輸出結果
反斜槓 \ 是什麼
換行符是什麼 \n

 

window 路徑的栗子

print("c:\nothing\rtype")
print("c:\\nothing\\rtype")

# 輸出結果
c:\nothing\
c:
type
c:\nothing\rtype

 

更簡潔的解決方法

用轉義符會導致可讀性、維護性變差,Python 提供了一個更好的解決方法:在字串前加 r 

print(r"c:\nothing\rtype")

# 輸出結果
c:\nothing\rtype

關於更多 r"" 的講解請看:https://www.cnblogs.com/poloyy/p/12444579.html

 

字串運算:下標和切片

獲取字串中某個字元

字串是一個序列,所以可以通過下標來獲取某個字元

# 獲取字串某個字元
str = "hello world"
print(str[0])
print(str[1])
print(str[6])
print(str[-1])
print(str[-5])

# 輸出結果
h
e
w
d
l

如果是負數,那麼是倒數,比如 -1 就是倒數第一個元素,-5 就是倒數第五個元素

 

獲取字串中一段字元

Python 中,可以直接通過切片的方式取一段字元

切片的語法格式

str[start : end : step]
  • start:閉區間,包含該下標的字元,第一個字元是 0
  • end:開區間,不包含該下標的字元
  • step:步長

 

栗子

print("hello world'[:] ", 'hello world'[:])  # 取全部字元
print("hello world'[0:] ", 'hello world'[0:])  # 取全部字元
print("hello world'[6:] ", 'hello world'[6:])  # 取第 7 個字元到最後一個字元
print("hello world'[-5:] ", 'hello world'[-5:])  # 取倒數第 5 個字元到最後一個字元

print("hello world'[0:5] ", 'hello world'[0:5])  # 取第 1 個字元到第 5 個字元
print("hello world'[0:-5] ", 'hello world'[0:-5])  # 取第 1 個字元直到倒數第 6 個字元
print("hello world'[6:10] ", 'hello world'[6:10])  # 取第 7 個字元到第 10 個字元
print("hello world'[6:-1] ", 'hello world'[6:-1])  # 取第 7 個字元到倒數第 2 個字元
print("hello world'[-5:-1] ", 'hello world'[-5:-1])  # 取倒數第 5 個字元到倒數第 2 個字元

print("hello world'[::-1] ", 'hello world'[::-1])  # 倒序取所有字元
print("hello world'[::2] ", 'hello world'[::2])  # 步長=2,每兩個字元取一次
print("hello world'[1:7:2] ", 'hello world'[1:7:2])  # 步長=2,取第 2 個字元到第 7 個字元,每兩個字元取一次

# 輸出結果
hello world'[:] hello world
hello world'[0:] hello world
hello world'[6:] world
hello world'[-5:] world


hello world'[0:5] hello
hello world'[0:-5] hello
hello world'[6:10] worl
hello world'[6:-1] worl
hello world'[-5:-1] worl


hello world'[::-1] dlrow olleh
hello world'[::2] hlowrd
hello world'[1:7:2] el

 

 

字串的函式

Python 提供了很多內建的字串函式,具體可看

https://www.cnblogs.com/poloyy/p/12523095.html

 

 

相關文章