1.字符串的格式化问题
我叫xxx,我住在xxxx,我今年xx岁,我喜欢xxxxx
name = input("请输入你的名字:") # 将用户本次输入的结果传入name变量中
address = input("请输入你的住址:") # 将用户本次输入的结果传入address变量中
age = int(input("请输入你的年龄:")) # 将用户本次输入的结果传入age变量中
hobby = input("请输入你的爱好:") # 将用户本次输入的结果传入hobby变量中
s = "我叫%s,我住在%s,我今年%d岁,我喜欢%s" % (name, address, age, hobby) # 非常麻烦
s1 = "我叫{},我住在{},我今年{}岁,我喜欢{}".format(name, address, age, hobby) # 比较麻烦
s2 = f"我叫{name},我住在{address},我今年{age}岁,我喜欢{hobby}" # 很好用
# %s 表示字符串占位
# %d 表示整数占位
# %f 表示小数占位
# s、s1、s2的效果相同,但是s2最好用
# 如果你的python编译器是python 2.x的,s2可能不一定能用
2.索引和切片
索引:按照位置提取元素
可以采用索引的方式来提取某一个字符
程序员都从0开始数
符号表示倒数(-1为倒数第一)
print(字符串[数字])
切片:从一个字符串中提取一部分内容
print(字符串[数字1:数字2]) #从数字1切到数字2的前一项
如果从0开始切片,可以省略数字1
如果一直截取到末尾,可以省略数字2
print(字符串[:]) -> 从头截到尾(等于print(字符串))可以给切片添加步长来控制切片的方向
print(字符串[数字1:数字2:步长]) # 从数字1到数字2,每步长个元素出来一个元素
3.字符串常规操作
字符串的操作一般不会影响原字符串,一般是返回一个新的字符串
3.1 字符串大小写转换
dream.capitalize() # Dream (单个单词首字母大写)
i have a dream.title() # I Have A Dream (每个单词首字母大写)
I HAVE A DREAM.lower() # i have a dream (每个单词的所有字母都小写)
i have a dream.upper() # I HAVE A DREAM (每个单词的所有字母都大写)
如何忽略大小写来进行判断? -> upper()
verify_code = "xAd1" # 将xAd1传到变量verify_code里
user_input = input(f"请输入验证码({verify_code}):") # 获取用户的输入结果
if verify_code.upper() == user_input.upper(): # 全部大写就可以忽略大小写
print("验证码正确")
else:
print("验证码错误")
3.2 替换和切割
strip() # 去掉字符串左右两侧的空白符
username = input("请输入用户名:").strip() # 获取用户的输入结果
password = input("请输入密码:").strip() # 获取用户的输入结果
if username == "ABC":
if password == "123456": # if判断语句的嵌套
print("登录成功")
else:
print("登录失败")
else:
print("登录失败")
replace(old, new) # 字符串替换
s = "hello i am a good man"
s1 = a.replace(" ","") # 结果:helloiamagoodman(去掉所有的空格)
split(用什么切割) 字符串切割,用什么切,就会损失掉谁
a = "python_java_c_c#_javascript"
lst = a.split("_") # 切割之后的结果会放在列表当中,用下划线切割
print(lst) # >>>['python', 'java', 'c', 'c#', 'javascript']
lst = a.split("_java_") # 用_java_切割
print(lst) # >>>['python', 'c_c#_javascript']
3.4 查找和判断
查找:
①字符串.find("文字") # 如果返回的是 -1 就是没有该文字出现
②字符串.index("文字") # 如果报错就是没有该文字出现
③print("文字" in 字符串) # in 可以做条件上的判断 True->在 False->不在
print("文字" not in 字符串) # not in 是否不存在 True->不在 False->在
name = input("请输入你的名字:")
if name.startswith("张"): # 字符串是否以xxxxxx开头,endswith()表示结尾
print("你姓张")
else:
print("你不姓张")
3.5 补充和总结
len(字符串) # 字符串长度
字符串 = "用什么连接".join(列表) # 用东西(可以什么都不用,也就是"")把列表中的每一项连接起来,结果是字符串
总结:
①格式化一个字符串
f"{变量}"
②索引和切片
索引:从0开始,[]
切片:字符串[start: end: stop],取到end位置的前一个
③相关操作
字符串操作对原字符串是不发生改变的
㈠ upper() 在需要忽略大小写的时候
㈡ strip() 可以去掉字符串左右两端的空白(空格,tab,换行)
㈢ replace() 字符串替换
㈣ split() 对字符串进行切割
㈤ join() 拼接一个列表中的内容成为新的字符串
㈥ startswith() 判断字符串是否以xxx开头
㈦ len() 字符串长度(内置函数)
④字符串的循环和遍历
for c in 字符串:
print(c) 字符串中的每一个字符
⑤关于in
㈠ 判断xxx是否在xxxx中出现
㈡ for循环