字符得方法
一、独有
1.1 、startswith()、endswith()
startswith()判断字符串是否以 XX 开头,endswith()判断字符串是否以 XX 结尾,得到一个布尔值
v1 = "叨逼叨的一天,烦死了"
# True
result = v1.startswith("叨逼叨的一天")
print(result) # 值为True
# 案例
v11 = input("请输入住址:")
if v11.startswith("北京市"):
print("北京人口")
else:
print("非北京人口")
v111 = "叨逼叨的一天,烦死了"
result = v111.endswith("烦死了")
print(result) # 值为True
# 案例
address = input("请输入地址:")
if address.endswith('村'):
print("农业户口")
else:
print("非农户口")
1.2 、isdecimal()
判断字符串是否为十进制数,得到一个布尔值
v3 = "1238871"
result = v3.isdecimal()
print(result) # True
# 案例,两个数相加。
v1 = input("请输入值:") # ”666“
v2 = input("请输入值:") # ”999“
if v1.isdecimal() and v2.isdecimal():
data = int(v1) + int(v2)
print(data)
else:
print("请正确输入数字")
v31 = "123"
print(v31.isdecimal()) # True
v32 = "①"
print(v32.isdecimal()) # False
v33 = "123"
print(v33.isdigit()) # True
v34 = "①"
print(v34.isdigit()) # True
1.3 、strip()、lstrip()、rstrip()
strip()去除字符串两边空格,lstrip()去除左边空格,rstrip()去除右边的空格,去除换行符、制表符,得到一个新字符串
msg41 = " H e ll o啊,树哥 "
data41 = msg41.strip()
print(data41) # 将msg两边的空白去掉,得到"H e ll o啊,树哥 "
msg42 = " H e ll o啊,树哥 "
data42 = msg42.lstrip()
print(data42) # 将msg左边的空白去掉,得到"H e ll o啊,树哥 "
msg43 = " H e ll o啊,树哥 "
data43 = msg43.rstrip()
print(data43) # 将msg右边的空白去掉,得到" H e ll o啊,树哥"
# 补充:去除 空格、换行符、制表符.
# 案例
code = input("请输入4位验证码:") # FB87
data = code.strip()
if data == "FB87":
print('验证码正确')
else:
print("验证码错误")
# 再补充:去除字符串两边指定的内容
msg44 = "哥H e ll o啊,树哥"
data44 = msg44.strip("哥")
print(data44) # 将msg两边的哥去掉,得到"H e ll o啊,树"
msg45 = "哥H e ll o啊,树哥"
data45 = msg45.lstrip("哥")
print(data45) # 将msg左边的哥去掉,得到"H e ll o啊,树哥"
msg = "哥H e ll o啊,树哥"
data = msg.rstrip("哥")
print(data) # 将msg右边的哥去掉,得到"哥H e ll o啊,树"
1.4 、upper()、lower()
upper()字符串变大写,得到一个新字符串
msg51 = "my name is oliver queen"
data51 = msg51.upper()
print(msg51) # my name is oliver queen
print(data51) # 输出为:MY NAME IS OLIVER QUEEN
# 案例
code52 = input("请输入4位验证码:") # FB88 fb88
value52 = code52.upper() # FB88
data52 = value52.strip() # FB88
if data52 == "FB87":
print('验证码正确')
else:
print("验证码错误")
# 注意事项
"""
code的值"fb88 "
value的值"FB88 "
data的值"FB88"
"""
lower()字符串变小写,得到一个新字符串
msg61 = "My Name Is Oliver Queen"
data61 = msg61.lower()
print(data61) # 输出为:my name is oliver queen
# 案例
code62 = input("请输入4位验证码:")
value62 = code62.strip().lower()
if value62 == "fb87":
print('验证码正确')
else:
print("验证码错误")
1.5 、replace()
字符串内容替换,得到一个新的字符串
data71 = "你是个好人,但是好人不合适我"
value71 = data71.replace("好人","贱人")
print(data71) # "你是个好人,但是好人不合适我"
print(value71) # "你是个贱人,但是贱人不合适我"
# 案例
video_file_name = "高清无码爱情动作片.mp4"
new_file_name = video_file_name.replace("mp4","avi") # "高清无码爱情动作片.avi"
final_file_name = new_file_name.replace("无码","步兵") # "高清步兵爱情动作片.avi"
print(final_file_name)
# 案例
char_list71 = ["草拟吗","逗比","二蛋","钢球"]
content71 = input("请输入评论信息")
for item in char_list71:
content71 = content71.replace(item,"**")
print(content71)
1.6 、split()、rsplit()
字符串切割,得到一个列表
data81 ="123|ABC|com"
result81 = data81.split('|') # ["123","ABC","com"]
print(result81) # 输出 ["123","ABC","com"] 根据特定字符切开之后保存在列表中,方便以后的操作
# 案例:判断用户名密码是否正确
info81 = "123,root" # 备注:字符串中存储了用户名和密码
user_list81 = info81.split(',') # 得到一个包含了2个元素的列表 [ "123" , "root" ]
user81 = input("请输入用户名:")
pwd81 = input("请输入密码:")
if user81 == user_list81[0] and pwd81 == user_list81[1]:
print("登录成功")
else:
print("用户名或密码错误")
# 扩展
data82 = "123|ABC|com"
v82 = data82.split("|") # ["123","ABC","com"]
print(v82)
v83 = data82.split("|", 1) # ['123', 'ABC|com']
print(v83)
# 再扩展
data83 = "123|ABC|com"
v83 = data83.rsplit(',')
print(v83) # ["123","ABC","com"]
v84 = data83.rsplit(',',1)
print(v84) # ['武沛齐,root', 'wupeiqi@qq.com']
1.7 、join()
字符串拼接,得到一个新的字符串
data_list91 = ["alex","是","大烧饼"]
v91 = "_".join(data_list91) # alex_是_大烧饼
print(v91)
1.8 、encode、decode
encode字符串转换为字节类型,decode字节类型转换为字符串
data11 = "嫂子" # unicode,字符串类型
v111 = data11.encode("utf-8") # utf-8,字节类型
v112 = data11.encode("gbk") # gbk,字节类型
print(v111) # b'\xe5\xab\x82 \xe5\xad\x90'
print(v112) # b'\xc9\xa9 \xd7\xd3'
s111 = v111.decode("utf-8") # 嫂子
s112 = v112.decode("gbk") # 嫂子
print(s111)
print(s112)
1.9 、format()
格式化字符串,得到新的字符串
name10 = "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
data10 = name10.format("老王","护士","嫩模")
print(data10) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
print(name10) # "{0}的喜欢干很多行业,例如有:{1}、{2} 等"
name101 = "{}的喜欢干很多行业,例如有:{}、{} 等"
data101 = name101.format("老王","护士","嫩模")
print(data101) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
name102 = "{name}的喜欢干很多行业,例如有:{h1}、{h2} 等"
data102 = name102.format(name="老王",h1="护士",h2="嫩模")
print(data102) # 老王的喜欢干很多行业,例如有:护士、嫩模 等
1.10 、center、rjust、ljust
将字符串内容居中、居左、居右展示
v121 = "王老汉"
data121 = v121.center(21, "-")
print(data121) #---------王老汉---------
data122 = v121.ljust(21, "-")
print(data122) # 王老汉------------------
data123 = v121.rjust(21, "-")
print(data123) # ------------------王老汉
1.11 、zfill
帮助你填充0
data13 = "alex"
v131 = data13.zfill(10)
print(v131) # 000000alex
# 应用场景:处理二进制数据
data132 = "101" # "00000101"
v132 = data132.zfill(8)
print(v132) # "00000101"
二、公共
2.1 、+
相加:字符串 + 字符串
v1 = "alex" + "大sb"
print(v1) # alex大sb
2.2 、*
相乘:字符串 * 整数
data2 = "嫂子" * 3
print(data2) # 嫂子嫂子嫂子
2.3 、len()
长度
data3 = "嫂子满身大汉"
value3 = len(data3)
print(value3) # 6
2.4 、获取字符串中的字符,索引
message4 = "来做点py交易呀"
# 0 1 2345 6 7
# ... -3 -2 -1
print(message4[0]) # "来"
print(message4[1]) # "做"
print(message4[2]) # "点"
print(message4[-1]) # 呀
print(message4[-2]) # 呀
print(message4[-3]) # 呀
# 注意:字符串中是能通过索引取值,无法修改值。【字符串在内部存储时不允许对内部元素修改,想修改只能重新创建.]
message41 = "来做点py交易呀"
index41 = 0
while index41 < len(message41):
value41 = message41[index41]
print(value41)
index41 += 1
message42 = "来做点py交易呀"
index42 = len(message42) - 1
while index42 >=0:
value42 = message42[index42]
print(value42)
index42 -= 1
2.5 、获取字符串中的子序列,切片
message5 = "来做点py交易呀"
print(message5[0:2]) # "来做"
print(message5[3:7]) # "py交易"
print( message5[3:] ) # "py交易呀"
print( message5[:5] ) # "来做点py"
print(message5[4:-1]) # "y交易"
print(message5[4:-2]) # "y交"
print(message5[4:len(message5)]) # "y交易呀"
# 注意:字符串中的切片只能读取数据,无法修改数据。【字符串在内部存储时不允许对内部元素修改,想要修改只能重新创建]
message51 = "来做点py交易呀"
value51 = message51[:3] + "Python" + message51[5:]
print(value51) # 来做点Python交易呀
2.6 、步长,跳着去字符串的内容
name6 = "生活不是电影,生活比电影苦"
print(name6[0:5:2]) # 输出:生不电 【前两个值表示区间范围,最有一个值表示步长】
print(name6[:8:2]) # 输出:生不电, 【区间范围的前面不写则表示起始范围为0开始】、
print(name6[2::2]) # 输出:不电,活电苦
print(name6[2::3]) # 输出:不影活影
print(name6[::2]) # 输出:生不电,活电苦 【区间范围不写表示整个字符串】
print(name6[8:1:-1]) # 输出:活生,影电是不 【倒序】
print(name6[8:1:-1]) # 输出:活生,影电是不 【倒序】
print(name6[-1:1:-1]) # 输出:苦影电比活生,影电是不 【倒序】
# 面试题:给你一个字符串,请将这个字符串翻转。
value6 = name6[-1::-1]
print(value6) # 苦影电比活生,影电是不活生
2.7 、循环
- while循环
message7 = "来做点py交易呀"
index7 = 0
while index7 < len(message7):
value7 = message7[index7]
print(value7)
index7 += 1
- for循环
message71 = "来做点py交易呀"
for char7 in message71:
print(char7)
- range,帮助我们创建一系列的数字
range(10) # [0,1,2,3,4,5,6,7,8,9]
range(1,10) # [1,2,3,4,5,6,7,8,9]
range(1,10,2) # [1,3,5,7,9]
range(10,1,-1) # [10,9,8,7,6,5,4,3,2]
- For + range
for i in range(10):
print(i)
messag = "来做点py交易呀"
for i in range(5): # [0,1,2,3,4]
print(messag[i])
for i in range( len(messag) ): # [0,1,2,3,4,5,6,7]
print(messag[i])