字符串詳解
-
在python中引號引起來的就是字符串
-
字符串是用來存儲少量數據
索引
索引(下標) 通過索引可以精確的定位到某個元素
name = "meat"
meat 每一個字母叫做一個元素
# 0123 從左向右代表每一個字母
#-4-3-2-1 從右向左每一個字母
print(name[-1]) 輸出 t
name = "今天是個好日子"
0 1 2 3 4 5 6
-7-6-5-4-3-2-1
a = name[0]
b = name[1]
print(a+b) **輸出今天**
切片
name = "todayisgood"
print(name[0:2]) 輸出:to
顧頭不顧尾 name[起始位置:終止位置]
print(name[:])
某個位置不指定的時候默認取最后或最前
print(name[:3]) 輸出:tod
print(name[2:5]) 輸出:day
print(name[-2:-5])
print(name[-2:-5:-1])
# **[起始位置:終止位置:步長] 步長默認為1**
name = "大黑哥吃大煎餅"
print(name[1:5])
輸出 黑哥吃大
print(name[-2:-6:-1])
輸出 煎大吃哥
print(name[-6:6])
輸出 黑哥吃大煎
a = name[0]
輸出 大
b = name[2]
輸出 哥
c = name[4]
輸出 大
d = name[6]
print(a+b+c+d)
print(name[::2])
print(name[100:105])
切片的時候起始位置和終止位置都超出的時候不會進行報錯
print(name[100])
索引的時候索引值超出范圍的時候會報錯
s = 'Python最NB'
獲取s字符串中前3個內容
s[0:3]
獲取s字符串中第3個內容
s[2]
獲取s字符串中后3個內容
s[-3:]
獲取s字符串中第3個到第8個
s[2:8]
獲取s字符串中第2個到最后一個
s[1:]
獲取s字符串中第1,3,5個內容
s[0:6:2]
獲取s字符串中第2,4,6個內容
s[1:7:2]
獲取s字符串中所有內容
s[:]
獲取s字符串中第4個到最后一個,每2個取一個
s[3::2]
獲取s字符串中倒數第5個到最開始,每3個取一個
s[-5::-3]
字符串的方法:
大小寫
s = "alex"
s1 = s.upper() #全部大寫
print(s1)
s = "ALEX"
s1 = s.lower() # 全部小寫
print(s1)
應用場景
s = input("驗證碼(AbC5)")
if s.upper() == "AbC5".upper():
print("驗證碼正確")
else:
print("驗證碼錯誤!")
以什么開頭
s = "ALEX"
s1 = s.startswith("E",2,6)
print(s1)
以什么結尾
s = "ALEX"
s1 = s.endswith("X",3,4)
print(s1)
統計
s = "alexdxjbx"
s1 = s.count("x")
print(s1)
輸出 3
脫: 字符串頭尾兩端的空格和換行符以及制表符
n = input(">>>")
if n.strip() == "alex":
print("1")
else:
print("2")
s = "alexdsba"
s1 = s.strip("a") # 可以指定內容取脫
print(s1)
分割:以空格和換行符以及制表符進行分割
s = "aelxlaaa"
s1 = s.split("l",maxsplit=1) # 可以通過指定方式進行切割
print(s1)
替換:
s = "大黑哥吃肉夾饃,肉夾饃"
s1 = s.replace("肉夾饃","大煎餅")
s1 = s.replace("肉夾饃","大煎餅",1) # 指定替換的次數
print(s1)
首字母大寫
name = "alex"
name1 = name.capitalize()
print(name1)
輸出 Alex
每個單詞首字母大寫
name = "jerry home"
print(name.title())
輸出 Jerry Home
-##### 大小寫反轉
name = "JerryHome"
print(name.swapcase())
輸出 jERRYhOME
居中---填充
name = "jerry"
print(name.center(30,"*"))
輸出 ************jerry*************
-
查找 從左向右 只查找一個
name = "jerry"
print(name.find("r"))
輸出 2 (代表第一個"r"的下標)
print(name.find("t"))
輸出 -1 (find 查找不存在的返回 -1)
print(name.index("t"))
index 查找不存在的就報錯
拼接
name = "jerry"
print("_".join(name)) ***重點
輸出 "j_e_r_r_y"
name = "jerry"
name1 = "*".join(name)
print(name1)
輸出 j*e*r*r*y
name = "jerry"
print("&".join(name))
輸出 :j&e&r&r&y
-
格式化
1.%s
2.f
3.name.format()
name = "jerry{},{},{}"
print(name.format(1,2,3)) #按照位置順序進行填充
輸出 jerry1,2,3
name = "jerry{2},{0},{1}"
print(name.format("a","b","c")) #按照索引值進行填充
輸出 jerryc,a,b
name = "jerry{a},{b},{c}"
print(name.format(a=1,c=2,b=3)) #按照關鍵字進行填充
輸出 jerry1,3,2
-
字符串 + * 會開辟新的空間
name = "jerry"
name1 = "home"
print(id(name))
print(id(name1))
print(id(name + name1))
輸出 2609785706008 #內存地址都不同
2609817396424
2609818262256
is 系列:
s = "12.3"
print(s.isalnum()) # 判斷是不是字母,數字,中文
print(s.isalpha()) # 判斷是不是字母,中文
print(s.isdigit()) # 判斷字符串是不是全都是阿拉伯數字
print(s.isdecimal()) # 判斷是否是十進制