字符串的格式化问题 字符串的常规操作
数据类型
int,float
bool :用来做条件判断的 取值:true false
在python中,所有的非零的数字都是True,零是False
在python中,所有的非空字符串都是True,空字符串是False
综上:在python的基本数据类型中,表示空的东西都是False,不空的东西都是True
while 1: content=input("请输入你要说的话") if content: print(content) else: break字符串的格式化问题
%s 字符串占位 %d 占位整数 %f 占位小数
#我叫xxx,我住在xxx,我今年xx,我的爱好是xxx name=input("请输入你的名字") add=input("请输入你的地址") age=int(input("请输入你的年龄")) hobby=input("请输入你的爱好") s="我叫%s,我住在%s,我今年%d,我的爱好是%s" % (name,add,age,hobby) s1="#我叫{},我住在{},我今年{},我的爱好是{}".format(name,add,age,hobby) s2=f"#我叫{name},我住在{add},我今年{age},我的爱好是{hobby}" print(s) print(s1) print(s2)推荐使用s2 f——string
索引和切片
索引:按照位置提取元素,采用索引的方式来提取某一个字符(文字)
切片:从一个字符串中提取一部分内容 (左闭右开) print(s[start,end])
如果start是开头进行切片,可以省略 截取到末尾也可以省略
s="我的名字是周杰伦" s1="zxcvbnmqwertyuiopasdfghjkl" s2="我爱你" print(s[0]) print(s[-1])#-1表示最后一个 print(s[0:3])#提取一部分内容 print(s[-3:-1])#还是从左往右,所以左边的数要小于右边的,从后面开始切片 print(s1[::5])#从头到尾,每隔五个数取一个 print(s2[::-1])#表示从右往左字符串的常规操作
字符串的操作一般不会对原字符串产生影响,一般是返回一个新的字符串
s="python" s1=s.capitalize()#字符串大小写转换 print(s1) s3="I have a dream" s2=s3.title()#单词的首字母大写 print(s2) s4=s3.lower()#变成小写字母 print(s4) s5=s3.upper()#把所有的字母变成大写字母 print(s5)当输入验证码忽略大小写 upper()
verify_code="x2D5" user_input=input(f"请输入验证码{verify_code}:") if verify_code.upper()==user_input.upper(): print("验证码正确") else: print("验证码输入不正确")去掉空格 .strip()
username=input("请输入用户名").strip() password=input("请输入密码").strip()#去掉字符串左右两端的空白符(空格,\t,\n) if username=="admin" and password=="123456": print("登录成功") else: print("登录失败")字符串的替换 replace(old,new)
s="你好,我是xxx" s1=s.replace("xxx","周清") print(s1)字符串切割 split("用什么去切割")
切割之后的结果会放在列表当中 用什么切,就会损失谁
s="hhffskf-fgajkfaf-sfhskhf" s1=s.split("-") print(s1)字符串的查找 find() index() in [not in] 不存在
s="你好,我是周清" s1=s.find("周清") print(s1)#5 s2=s.index("周清") print(s2)#5 print("周清" in s)#True判断 startswith("判断的条件") endswith()
name=input("请输入你的名字") if name.startswith("张"): print("你姓张") else: print("你不姓张")判断字符串是否由整数组成 .isdigit()
money=input("请输入你还有多少钱") if money.isdigit():#判断money是否是整数 money=int(money) print("你就可以花钱") else: print("输入的金额错误")len() 长度
s="hello" print(len(s))join() 字符串之间添加
list=['hello','world','!'] s="_".join(list) print(s)#hello_world_!总结
1. f-string 格式化
f"{变量}"格式化一个字符串
2. 索引和切片
- 索引:从 0 开始
- 切片:
s[start: end: step],end 位置的数据永远取不到
3. 字符串相关操作
字符串操作不会修改原字符串,只会生成新字符串:
upper():全部转大写,用于忽略大小写判断场景strip():去除字符串左右两端空白(空格、制表符\t、换行\n)replace():字符串内容替换split():按照分隔符切割字符串,返回列表join():将列表里的元素拼接成一个新字符串startswith():判断字符串是否以指定内容开头len():内置函数,获取字符串长度
4. 字符串循环遍历
for c in s:
print(c) # 依次取出字符串中的每一个字符
5. 关键字 in 的两种用法
- 判断子串是否存在:
子串 in 字符串,返回布尔值 - 用于 for 循环遍历序列(字符串 / 列表等)
