字符串格式化问题
使用规则举例:
name = input("请输入你的名字:")
address = input("请输入你的住址:")
age = int(input("请输入你的年龄:"))
hobby = input("请输入你的爱好:")
# %s 字符串占位
# %d 整数占位
s = "我叫%s,我住在%s,我今年%d,我喜欢%s" % (name,address,age,hobby)
s1 = "我叫{},我住在{},我今年{},我喜欢{} " .format(name,address,age,hobby)
s2 = f"我叫{name},我住在{address},我今年{age},我喜欢{hobby}" #f-string
print(s2)
字符串的索引和切片
索引:按照位置提取元素。
#字符串中可以采用索引的方式来提取某一个字符(文字)
print(s[3]) 表示字符串的第四个元素,因为程序员都是从0还是计数
print(s[-1]) 表示字符串的倒数第一个字符
切片:从一个字符串中提取一部分内容。
print(s[3:6]) #从下标为3的位置进行切片,切到6结束(不包含6位置)。
#语法:s[start:end] 从start到end进行切片,但是取不到end。
print(s[0:5])
print(s[:5]) #如果start从开头进行切片,可以省略不写。
print(s[ : ]) #左右都省略,从头且到尾。
print(s[-3:-1]) 目前(步长默认1)只能从左向右切,所以print(s[-1:-3])是不可行的。
#我们还可以给切片添加步长来控制切片的方向
print(s[0:8:1]) #表示从左向右,切片一次走一步
print(s[0:8:-1]) #表示从右往左,切片一次走一步
#语法:s[start:end:step] 从start切到end,每step个元素切一个元素。
字符串常规操作
#字符串的操作一般不会对原字符串产生影响,一般是返回一个新的字符串
1、字符串大小写转换
s = "python"
s1 = s.capitalize()
print(s1)
s1 = s.title() #字符串中单词的首字母大写字母
s1 = s.upper() #把所有的变成大写字母
s1 = s.lower() #变成小写字母
#如何忽略大小写去判断
例:
verify_code = "xAd1"
user_input = input(f"请输入验证码({verify_code}):")
if verify_code.upper() == user_input.upper():
print("验证码正确")
else:
print("验证码不正确")
字符串的切割和替换(*)
#字符串切割
s = " 你好 , 我叫 陈冠希 "
s1 = s.strip() #切除字符串左右两端的空白字符(空格 \t \n等)
print(s1)
#split(用什么切割填什么)
#属于字符串切割,会将所填括号内容的两侧分成不同字符串,用什么切就会损失掉谁
#字符串替换 str.replace(old,new)
s = "你好,我叫陈冠希"
s1 = s.replace("陈冠希","吴彦祖")
print(s1)
特殊用法
a = "hello my name is chen guan xi"
a1 = a.replace(" ","") #去掉所有空格
print(a1)
字符串的查找和替换
#查找
s = "我的名字叫陈冠希"
ret = s.find("陈冠希")
print(ret) //结果为5
#find的功能是查找是否存在子串,且存在会返回子串的首元素下标,不存在会返回-1.
ret = s.index("陈冠希")
print(ret) //结果为5
#index的功能是查找是否存在子串,且存在会返回子串的首元素下标,不存在会报错
还有一种判断是否存在子串的方法:
结果都为False
#判断
str.startswith("陈") #判断字符串的首元素是否是陈,是为True,否则False.
str.endswith("陈") #判断字符串的尾元素是否是陈,是为True,否则False.
str.isdigit(): #判断字符串是否由整数组成
str.isdecimal(): #判断字符串是否由小数组成
补充和总结
s = "hello"
print(len(s)) #len用来计算字符串长度
lst = ['a','b','c','d']
#用_把上面的人的名字连起来
s = "_".join(lst)