1.转义字符
2.字符串的相关运算操作
3.字符串的相关函数
4.字符串格式化
1.转义字符:
#1.\ 转义符,续行符。在后面出现特定的字符可以实现转义效果,在行尾出现可以在下一行继续书写
str1="王大锤对小妹说:我喜欢你,你愿意嫁给我吗?\
小妹回答:你是好人"
print(str1)
#2.\n 代表一个换行符
str1="王大锤对二美说:嫁给我把\n二美回答:\n渣男"
print(str1)
#3.\r 返回光标至行首(从行首开始覆盖)
str1="大锤是个好人还是渣男呢\r王大锤是个好渣男"
print(str1)
#4.\t 水平制表符(缩进)
str1="小美和大美又是什么关系呢?\t大美是长大的小妹"
print(str1)
#5.\b 退格符
str1="后来,大美变成了\b胖妹"
print(str1)
#6.\\ 输出反斜杠
#原样输出转义字符,只需要在字符串前面加r即可。
str1=r"大锤还是80\n小美变成了\\\\老妹"
print(str1)
3.字符串的相关操作
#1. + 字符串连接运算
str1="王大锤"
str2="路小雨"
res=str1+str2
print(res)
#2. * 字符串复制运算
str1="只因你太没"
res=str1*5
print(res)
#3. [] 字符串索引操作
str1='大锤最终和美美幸福的在一起玩泥巴'
res=str1[4]
print(res)
print(str1[-12])
#4. 字符串的分片操作
str[开始值:结束值:跳步值] 跳步值默认是1
开始值默认是0,结束值默认是到最后
反向查找根据跳步值的正负而定
str1="小锤是大锤的小孩吗?不是,是弟弟"
res=str1[0::2]
print(res)
res=str1[-2:3:-1]
print(res)
4.字符串函数
与英文相关的,大小写转换的函数
1.upper() 将字符串中所有小写字母转换为大写
字符串.upper()
str1="abc1234"
res=str1.upper()
print(res)
2.lower() 将字符串中所有大写字母转化为小写
字符串.lower()
str1="DJHKH"
res=str1.lower()
print(res,type(res))
3.swapcase() 将字符串中大小写字母进行互换
字符串.swapcase()
str1="AbddddKKK"
res=str1.swapcase()
print(res)
4.title() 将字符串中的字母进行标题化处理(每个单词首字母大写)
字符串.title()
str1="hello world"
res=str1.title()
print(res)
5.capitalize() 将字符串中第一个字母变为大写 首字母大写函数
字符串.captialize()
str1="hello wrj"
res=str1.capitalize()
print()
字符串查找相关的函数
1.index() 从字符串左侧开始向右查找指定字符第一次出现的位置(找不到字符串报错) *
字符串.index(查找的字符串)
字符串.index(查找的字符串,开始索引)
字符串.index(查找的字符串,开始索引,结束索引)
str1="大锤,小妹说要嫁给你"
res=str1.index("小",-7,-1)
print(res) #结果是按正的顺序编号
2.rindex() 从字符串右侧开始向左查找指定字符第一次出现的位置(找不到字符串报错) *
字符串.rindex(查找的字符串)
字符串.rindex(查找的字符串,开始索引)
字符串.rindex(查找的字符串,开始索引,结束索引)
3.find() 和index一样(找不到字符串返回-1) *
字符串.find(查找的字符串)
字符串.find(查找的字符串,开始索引)
字符串.find(查找的字符串,开始索引,结束索引)
str1="明明可以开豪车.我却要蜗居"
res=str1.find("以")
print(res)
4.rfind() 和rindex一样(找不到字符串返回-1) *
字符串.rfind(查找的字符串)
字符串.rfind(查找的字符串,开始索引)
字符串.rfind(查找的字符串,开始索引,结束索引)
str1="这就是我和明明区别"
res=str1.rfind("ni ",0,9)
print(res)
判断相关的字符串函数
1.isupper() 检测字符串是否都是大写字母组成
变量.isupper()
str="adfdaf"
res=str.isupper()
print(res)
2.islower() 检测字符串是否都是小写字母组成
变量.islower()
str="adfdaf"
res=str.islower()
print(res)
3.istitle() 检测字符串是否符合标题要求
变量.istitle()
4.isalnum() 检测字符串是否由数字和字母及文字组成
变量.isalnum()
str="年后abf134"
res=str.isalnum()
print(res)
5.isalpha() 检测字符串是否由字母和文字组成
变量.isalpha()
str="年后abd"
res=str.isalpha()
print(res)
6.isdigit() 检测字符串是否由10进制字符组成(数字) *
True: Unicode数字,byte数字(单字节),全角数字(双字节)
False: 汉字数字
Error: 无
变量.isdigit()
str="百千万"
res=str.isdigit()
print(res)
#结果为Flase
7.isnumeric()检测字符串是否由数字字符组成(数字)
True: Unicode数字,全角数字(双字节),汉字数字
False: 无
Error: byte数字(单字节)
变量.isnumeric()
str="46432"
res=str.isnumeric()
print(res)
8.isspace() 检测字符串是是否由空白字符(不可见字符)组成 *
变量.isspace()
str=" "
res=str.isspace()
print(res)
9.startswith() 检测字符串是否以指定的字符串开头 *
变量.startswith('检测的字符串')
str="今天天气真好"
res=str.startswith("今天")
print(res)
10.endswith() 检测字符串是否以指定的字符串结尾 *
变量.endswith('检测的字符串')
字符串操作相关函数
#1.split() 使用特定的字符串切割字符串 *
变量.split(切割的字符)
变量.split(切割的字符,切割次数)
str="今天天气真好,我带着我小弟,去我家玩"
res=str.split("我",3)
print(res)
#2.join() 使用特定字符串将容器数据连接成一个字符串 *
特定字符串.join(容器)
str="你我他"
res="是".join(str)
print(res)
你是我是他
list1=["猛妹子","萌妹子"]
res="是".join(list1)
print(res)
猛妹子是萌妹子
dict1={"你":1,"我":2}
res="不是".join(dict1)
print(res)
你不是我
set1={'洋葱','那个男孩','我不配'}
res="和".join(set1)
print(res) #结果无序排列
#3.zfill() zero fill 零填充效果(即长度不够用0填充),内容靠右
变量.zfill(整个字符串的长度)
str="你我他"
res=str.zfill(10)
print(res)
结果:0000000你我他
4.center() 使用指定的字符将字符串填充到指定的长度,原有内容居中对齐
变量.center(填充长度)
变量.center(填充长度,填充字符)
str="你我他"
res=str.center(10,"#")
print(res)
结果:###你我他####
5.ljust()使用指定的字符将字符串填充到指定的长度,原有内容靠左对齐
变量.ljust(填充长度)
变量.ljust(填充长度,填充字符)
str="你我他"
res=str.ljust(10,"#")
print(res)
结果:你我他#######
6.rjust()使用指定的字符将字符串填充到指定的长度,原有内容靠右对齐
变量.rjust(填充长度)
变量.rjust(填充长度,填充字符)
7.strip() 去除字符串左右两侧指定的连续字符 *
变量.strip() 默认去除左右两侧空格字符
变量.strip(去除的指定字符串)
str="伤害我丫我伤害"
res=str.strip("伤害")
print(res)
8.lstrip()去除字符串左侧指定的连续字符
变量.lstrip() 默认去除左右两侧空格字符
变量.lstrip(去除的指定字符串)
9.rstrip()去除字符串右侧指定的连续字符
变量.rstrip() 默认去除左右两侧空格字符
变量.rstrip(去除的指定字符串)
10.replace() 字符串的替换操作 *
变量.replace('被替换的字符串','替换成的字符串')
变量.replace('被替换的字符串','替换成的字符串',替换次数)
str="王大锤喜欢萌妹子,萌妹子喜欢帅哥"
res=str.replace("萌妹子","汉子",1)
print(res)
11.count() 统计指定字符串 在字符串中出现的次数 *
变量.count('指定的字符串',开始值,结束值) 开始值和结束值是可选的
str1="现在的年轻人,没事就看小电影,叫小姐姐,真的是小孩子"
res=str1.count("小",1,15)
print(res)
5.字符串格式化操作
% 百分号格式化操作
基本格式:字符串 % 格式化使用的数据
占位符号:
%d 要格式化一个整型 *
str1="今天下午%d点小美学我去吃饭"%10
print(str1)
%f 要格式化一个浮点型(默认小数点后6位)
str1="圆周率等于%8f"%3.1456465321
print(str1)
%s 要格式化一个字符串 *
str="王大锤喜欢%s,小龙女喜欢%s"%('孔连顺','过儿')
print(str)
%c 要格式化一个ascii码
str1="%c的ascii码是97"%97
print(str1)
%u 要格式化一个无符号整型 效果同%d
str1="小明吃了%u个包子"%10
print(str1)
%o 要格式化一个无符号的八进制整型
str1="10的8进制是%o"%10
print(str1)
%x 要格式化一个无符号的十六进制数
str1="18的16进制是%x"%18
print(str1)
%X 要格式化一个无符号的十六进制数(大写)
str1="18的16进制是%X"%18
print(str1)
%e 要格式化一个科学记数法的浮点型
str1="3334.456464的科学计数法是%e"%3334.456464
print(str1)
%E 效果和%e一样
精度设定:(例子)
%.5f 表示精确到小数点后5位
宽度设定:(例子)
str1="hello%7s你好"%"耐克"
print(str1)
结果 hello 耐克你好
str1="hello%-7s你好"%"耐克"
print(str1)
结果 hello耐克 你好
%长度s 不设定的时候左侧填充,内容靠右
%-长度s 设定-,右侧填充,内容靠左
零填充效果:(例子)
%0长度d 不够的长度使用0填充而不是默认的空格
正负号显示效果:
%+d 表示整数显示 +值,负数显示-值
# 原样输出 %
str1="你好%s,我是%%s外星%s人"%("水星","火星")
print(str1)
#再加一个%就原样输出了
format函数格式化操作(2.6以上)
基本格式:
变量.format(参数,参数,....)
传参:
顺序传参
str1="小楼昨夜又{},故国不堪回首明{}".format("东风",'月中')
print(str1)
索引(位置传参)
str1="小楼昨夜又{1},故国不堪回首明{2}".format("西风","东风",'月中','水中')
print(str1)
关键字传参
str1="小楼昨夜又{dong_feng},故国不堪回首明{yue_zhong}".format(dong_feng="东风",yue_zhong="月中")
print(str1)
容器类型传参(列表或元组索引)
str1="小楼昨夜又{0[1]},故国不堪回首明{1[0]}".format(["西风","东风"],['月中','水中'])
print(str1)
限定符号:(必须在:后面使用)
对齐相关:参数位置:填充符号 对齐符号总长度 1:#> 20
< 左对齐
^ 居中对齐
> 右对齐
str="小明上学没带{1:#>10}就去了".format("书包","皮箱","书")
print(str)
#小明上学没带########皮箱就去了
进制转换符号:
d 十进制
b 二进制
o 八进制
x 十六进制
str="10的二进制等于{1:b}".format(20,10)
print(str)
精度限定符号:
.2f 表示小数点后保留2位
str="圆周率是{:.5f}".format(3.14545465454)
print(str)
金融限定符号:
, 表示数字从右向左,每三位数添加一个逗号(整数部分)
str="马云一天挣{:,}的钱".format(34654564546456)
print(str)
第七天作业题
h=1
while True:
str1 = input("请输入一串字符:")
if str("卧槽") in str1 and h==1:
h+=1
print("第一次违规")
elif str("卧槽") in str1 and h==2:
h+=1
print("第二次违规")
elif str("卧槽") in str1 and h==3:
print("退出程序")
exit()
else:
res=len(str1)
print("您检测的字符一共有",res,"个")
i=0
j=0
m=0
k=0
for num in str1:
if str(num).isalpha():
i+=1
elif str(num).isspace():
j+=1
elif str(num).isdigit():
m+=1
else:
k+=1
print("其中英文汉字=",i,"空白符=",j,"数字=",m,"其他=",k)