1. 程式人生 > >Python 字串,字串操作

Python 字串,字串操作

demo.py(字串的定義、遍歷):

str1 = "hello python"  # 用單引號或雙引號定義
str2 = '我的外號是"大西瓜"'

print(str2)
print(str1[6])

# 遍歷字串
for char in str2:
    print(char)

demo.py(字串的長度len、子串出現次數count、子串出現位置index):

hello_str = "hello hello"

# 1. 統計字串長度
print(len(hello_str))

# 2. 統計某一個小(子)字串出現的次數
print(hello_str.count("llo"))  # 2
print(hello_str.count("abc"))  # 0

# 3. 某一個子字串出現的位置
print(hello_str.index("llo"))
# 注意:如果使用index方法傳遞的子字串不存在,程式會報錯!
print(hello_str.index("abc"))  # 不存在,會報錯

demo.py(isspace是否為空白字串、isdecimal是否是數字字串):

# 1. 判斷空白字元
space_str = "      \t\n\r"

print(space_str.isspace())  # ""返回False

# 2. 判斷字串中是否只包含數字
# 1> 都不能判斷小數
# num_str = "1.1"
# 2> unicode 字串
# num_str = "\u00b2"
# 3> 中文數字
num_str = "一千零一"

print(num_str)
print(num_str.isdecimal())  # "1"  常用
print(num_str.isdigit())    # "1"  "①"  "\u00b2"(平方符號)
print(num_str.isnumeric())  # "1"  "①"  "\u00b2"  "一千零一"

demo.py(字串startswith、endswith、find查詢、replace替換):

hello_str = "hello world"

# 1. 判斷是否以指定字串開始
print(hello_str.startswith("hello"))  # True  區分大小寫

# 2. 判斷是否以指定字串結束
print(hello_str.endswith("world"))

# 3. 查詢指定字串
# index同樣可以查詢指定的字串在大字串中的索引
print(hello_str.find("llo"))  # 2
# index如果指定的字串不存在,會報錯
# find如果指定的字串不存在,會返回-1
print(hello_str.find("abc"))  # -1

# 4. 替換字串
# replace方法執行完成之後,會返回一個新的字串
# 注意:不會修改原有字串的內容
print(hello_str.replace("world", "python"))  # hello python   預設替換所有

print(hello_str)  # hello world   原字串不變

demo.py(strip去除前後空白、center文字對齊):

# 假設:以下內容是從網路上抓取的
# 要求:順序並且居中對齊輸出以下內容
poem = ["\t\n登鸛雀樓",
         "王之渙",
         "白日依山盡\t\n",
         "黃河入海流",
         "欲窮千里目",
         "更上一層樓"]

for poem_str in poem:

    # 先使用strip方法去除字串前後的空白字元
    # 再使用center方法居中顯示文字
    print("|%s|" % poem_str.strip().center(10, " "))  # center 第一個引數:寬度; 第二個引數:填充字元

demo.py(split拆分、join拼接):

# 假設:以下內容是從網路上抓取的
# 要求:
# 1. 將字串中的空白字元全部去掉
# 2. 再使用 " " 作為連線符,拼接成一個字串
poem_str = "登鸛雀樓\t 王之渙 \t 白日依山盡 \t \n 黃河入海流 \t\t 欲窮千里目 \t\t\n更上一層樓"

print(poem_str)

# 1. 拆分字串
poem_list = poem_str.split()  # 預設以空白字元分割。 返回列表
print(poem_list)

# 2. 合併字串
result = " ".join(poem_list)  # 以空白字元,拼接字串
print(result)

demo.py(字串擷取(切片),[開始索引:結束索引:步長]):

# 字串的擷取  字串[開始索引:結束索引:步長]
num_str = "0123456789"

print(num_str[2:6])  # 2345  包含起始索引,不包含結束索引。 步長預設是1
print(num_str[2:])   # 23456789  預設擷取到末尾
print(num_str[2:-1])  # 2345678  -1表示最後的索引。 不包含結束索引。
print(num_str[-2:])  # 89     擷取末尾兩個字元

print(num_str[0:6])  # 012345
print(num_str[:6])   # 012345  預設從起始開始擷取
print(num_str[:])    # 0123456789

print(num_str[::2])    # 02468  步長(每隔步長個字元擷取一個字元)

print(num_str[-1::-1])  # 9876543210  逆序(反轉)。 步長-1,從末尾開始擷取。 (開始索引-1可以省略)