python字符串操作
字符串定義
可用單引號、雙引號、三引號來定義字符串
# eg:
var1 = 'Hello World!'
var1 = "Hello World!"
var1 = """Hello World!"""
字符串相關的一些操作
1.input()
name = input("請輸入你的名字:")
#輸入張三
print(name)# 張三
print(type(name))# str
2.下標索引
# 索引從0開始
var1 = 'Hello World!'
# 取第一個元素就是:var1[0]
# 取第三個元素就是:var1[2]
3.切片
# 切?是指對操作的對象截取其中?部分的操作
# 不包含結束位置下標對應的數據, 正負整數均可
# 步?是選取間隔,正負整數均可,默認步?為1
var1 = 'Hello World!'
print(name[2:5]) # 從2開始,到5結束(不會拿到5本身)
print(name[2:5:1]) # 從2開始,到5結束,步長為1(不會拿到5本身)
print(name[:5]) # 從0開始,下表為5結束(不會拿到本身)
print(name[1:]) # 從1開始,一直到結束
print(name[:]) # 拿取所有
print(name[::2]) # 從0開始,步長為2,拿取所有
print(name[:-1]) # 從0開始,到最后一個數結束(-1代表最后一個數,不包含-1本身)
print(name[-4:-1]) # 從倒數第四個開始,到倒數第一個結束(不包含-1本身)
print(name[::-1]) # 從-1開始,倒著打印字符串,步長為1
print(name[::-2]) # 從-1開始,倒著打印字符串,步長為2
print(var2[:-4:-1]) # 從-1開始,倒著打印字符串,到倒數第四個結束(不包含倒數第四個),步長為1
4.查找
字符串查找?法即是查找元素在字符串中的位置或出現的次數
- find():檢測某個元素是否包含在這個字符串中,如果在,返回這個字符開始的位置下標,否則則返回-1。
# 字符串序列.find(?符, 開始位置下標, 結束位置下標)
# 開始和結束位置下標可以省略,表示在整個字符串序列中查找。
var = "hello and python and hello world"
print(var.find("and")) # 查找到and首字母下標,如果沒有,則返回-1
print(var.find("and",8,20)) # 查找到下標為8-20,and首字母下標,如果沒有,則返回-1
print(var.find("ors")) # 查找ors,如果沒有,則返回-1
- index():檢測某個元素是否包含在這個字符串中,如果在返回這個元組開始的位置下標,否則則報異常。
# 字符串序列.index(?符, 開始位置下標, 結束位置下標)
# 注意:開始和結束位置下標可以省略,表示在整個字符串序列中查找。
var = "hello and python and hello world"
print(var.index("and")) # 查找到and首字母下標
print(var.index("and",8,20)) # 查找到下標為8-20,and首字母下標
print(var.index("ors")) # 查找ors,如果沒有,則報錯
- count():返回某個元素在字符串中出現的次數
# 字符串序列.count(?符, 開始位置下標, 結束位置下標)
# 注意:開始和結束位置下標可以省略,表示在整個字符串序列中查找。
var = "hello and python and hello world"
print(var.count("and")) # 查看在字符串var中,and出現了多少次
print(var.count("ands")) # 如果沒有,則返回0次
print(var.count("and",8,20)) # 在一個區間內查找and出現的次數
拓展:
var = "hello and python and hello world"
# rfind(): 和find()功能相同,但查找?向為右側開始。
print(var.rfind("and"))
# rindex():和index()功能相同,但查找?向為右側開始。
print(var.rindex("and"))
5.修改
- replace():替換內容
# 字符串序列.replace(舊?符, 新?符, 替換次數)
# 注意:替換次數如果超出?串出現次數,則替換次數為該?串出現次數。
var = "hello and python and hello world"
print(var.replace("and","和")) # 將里面所有的and替換為和
print(var.replace("and","和",1)) # 將and替換為和,只替換一次
注意:數據按照是否能直接修改分為可變類型和不可變類型兩種。字符串類型的數據修改的時候不能改變原有字符串,屬于不能直接修改數據的類型即是不可變類型。
- split():按照指定字符分割字符串。
# 字符串序列.split(分割字符, num)
# 注意:num表示的是分割字符出現的次數,切割完成之后他會返回一個列表
var = "hello and python and hello world"
print(var.split("and")) # 以and為界,分隔開其他字符串,返回一個列表
print(var.split("and",1)) # 以and為界,分隔開其他字符串,只分割一次,返回一個列表
- join():??個字符或字符合并字符串,即是將多個字符串合并為?個新的字符串。
# 字符.join(多字符串組成的序列)
list1 = ["hello", "python", "i", "love", "you"]
t1 = ("hello", "python", "i", "love", "you")
set1 = {"hello", "python", "i", "love", "you"}
print("__".join(list1)) # 將列表轉化為字符串,并且使用指定符號隔開
print(",".join(t1)) # 將元組轉化為字符串,并且使用指定符號隔開
print("|".join(set1)) # 將集合轉化為字符串,并且使用指定符號隔開
- capitalize():將字符串第?個字符轉換成?寫。
var = "hello and python and hello world"
print(var.capitalize()) # 將字符串第?個字符轉換成?寫。
- title():將字符串每個單詞?字?轉換成?寫。
var = "hello and python and hello world"
print(var.title()) # 將字符串每個單詞?字?轉換成?寫。
- upper():將字符串中?寫轉?寫。
var = "hello and python and hello world"
print(var.upper()) # 將字符串中?寫轉?寫。
- lower():將字符串中?寫轉?寫。
var = "hello and python and hello world"
print(var.lower()) # 將字符串中?寫轉?寫。
- lstrip():刪除字符串左側空?字符。 了解即可
var = " hello and python and hello world "
print(var.lstrip()) # 刪除左側空格
- rstrip():刪除字符串右側空?字符。 了解即可
var = " hello and python and hello world "
print(var.rstrip()) # 刪除右側空格
- strip():刪除字符串兩側空?字符。
var = " hello and python and hello world "
print(var.strip()) # 刪除兩側空格
- just(): 填充字符串
# 字符串序列.ljust(?度, 填充字符)
var = "hello"
print(var.ljust(10,"_")) # 左對齊
print(var.rjust(10,"_")) # 右對齊
print(var.center(10,"_")) # 居中對齊
6.判斷
- startswith():檢查字符串是否是以指定元素開頭
# 字符串序列.startswith(?串, 開始位置下標, 結束位置下標)
var = "hello and python and hello world"
print(var.startswith("hello")) # 開頭是hello,返回True
print(var.startswith("and")) # 開頭不是and,返回False
print(var.startswith("and",6,20)) # 在索引6-20,開頭是and,返回True
- endswith():檢查字符串是否是以指定元素結尾
var = "hello and python and hello world"
print(var.endswith("and")) # 結尾不是and,返回False
print(var.endswith("world")) # 結尾時world,返回True
print(var.endswith("and",0,9)) # 在0到9的索引范圍,是and結尾,返回True
- isalpha():如果字符串所有字符都是字?則返回 True, 否則返回 False。
mystr1 = 'hello'
mystr2 = 'hello12345'
print(mystr1.isalpha()) # 結果:True
print(mystr2.isalpha()) # 結果:False
- isdigit():如果字符串只包含數字則返回 True 否則返回 False。
mystr1 = 'aaa12345'
mystr2 = '12345'
print(mystr1.isdigit()) # 結果: False
print(mystr2.isdigit()) # 結果:True
- isalnum():如果字符串所有字符都是字?或數字則返 回 True,否則返回False。
var1 = 'aaa12345'
var2 = '12345-'
print(var1.isalnum()) # 結果:True
print(var2.isalnum()) # 結果:False
- isspace():如果字符串中只包含空?,則返回 True,否則返回 False。
mystr1 = '1 2 3 4 5'
mystr2 = ' '
print(mystr1.isspace()) # 結果:False
print(mystr2.isspace()) # 結果:True
7.字符串運算
a = "Hello",b = "Python"
| + | 字符串連接 | >>>a + b | 'HelloPython' |
|---|---|---|---|
| [] | 通過索引獲取字符串中字符 | >>>a[1] | 'e' |
| [ : ] | 截取字符串中的一部分 | >>>a[1:4] | 'ell' |
| in | 成員運算符 - 如果字符串中包含給定的字符返回 True | >>>"H" in a | True |
| not in | 成員運算符 - 如果字符串中不包含給定的字符返回 True | >>>"M" not in a | True |
| r | 取消轉義 | >>>r“你\n好” | 你\n好 |
| % | 格式字符串 |
浙公網安備 33010602011771號