python字符串详解
字符串详解
-
在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()) # 判断是否是十进制