python day 07
字符串相关方法
str1 = '12345'
str2='abcde'
str3 ='abc123'
str4 = 'abc123...'
# isdigit :判断是否是数字字符串,返回True 或者False
print(str1.isdigit(),str2.isdigit()) # True False
# isalpha: 判断是否是纯字母字符串
print(str1.isalpha(),str2.isalpha(),str3.isalpha(),str4.isalpha())
# False True False False
# isalnum : 判断字符串是否是数字字符串或者是字母字符串 或是数字字母字符串
print(str1.isalnum(),str2.isalnum(),str3.isalnum(),str4.isalnum())
# True True True False
# 对齐:ljust、rjust 、center 等价于格式化输出中的 < > ^
str5='分隔符'
print(str5.center(10, '*')) # 宽度10 不足10用*补齐 ***分隔符****
print(str5.ljust(10, '*')) # 分隔符*******
print(str5.rjust(10, '*')) # *******分隔符
#验证字符串开头或结尾是否符合要求 : startwith\endwith
tel = '13522222226'
print(tel.startswith('135')) # True
print(tel.endswith('1232')) # False
if'/cj/2022/08-30/9839995.shtml'.startswith('https://www.chinanews.com.cn') == False :
print('https://www.chinanews.com.cn'+'/cj/2022/08-30/9839995.shtml')
# str(): 构造器语法:将其他数据类型转化为字符串
# 使用案例;找出 1000以内的阿姆斯特朗数
for i in range(1,1000):
str(i)
lenght = len(str(i))
numSum = 0
for j in str(i):
numSum += int(j) ** lenght
if numSum ==i:
print(f'{i}是阿姆斯特朗数')
# split : 切割,将字符串按照指定的符号进行切割,没被切掉的元素添加到一个列表中。
str1 = '123,000'
list1=str1.split(',')
print(list1) # ['123', '000']
#join():按照指定的间隔符将容器中的字符串拼接在一起(容器中所有元素必须是字符串)
str2 = '+'.join(list1)
print(str2) # 123+000
str3 = ''.join(list1)
print(str3) # 123000
# replace :替换,将新字符串替换到旧字符串的位置
# 字符串.replace(oldStr , newStr ,替换次数) 替换次数默认为全部替换
str1 = '123,000'
str2=str1.replace(',','')
print(str2) # 123000
print(str1.replace('0','+',1)) # 123,+00
print('--'*25)
# strip():默认将字符串两端的空白符号去掉(空白符包括空格,换行)
# strip():可以指定去除字符串两端的那、哪些符号
str1='\n ab\t cd \n'
print(str1)
print('--'*25)
print(str1.strip())
print('--'*25)
print(str1.strip('\n'))
# 手机号、身份证号、银行卡号等不需要参与计算的数字符号作为字符串存储。
tel = '13567899012'
print(tel.replace(tel[3:7], '****')) # 135****9012
# 屏蔽不文明用语
# 1.人为收集不文明用语。""
# 2.根据用户输入的一句话识别
# 3.检测到,进行*替换,将替换完的结果输出
list1=['卧槽','臣卜木曹','菜鸡','菜']
content = '卧槽,你可真菜,菜鸡,****!!!'
for i in list1:
content = content.replace(i, '*' * len(i))
print(content) # **,你可真*,**,****!!!
一些其他方法
count : 判断某元素在字符串中出现次数。
index 、rindex 找不到报错
index : 在字符串中从左向右查找某个符号第一次出现的位置(下标):可指定位置。
rindex: 在字符串中从右向左查找某个符号第一次出现的位置(下标):返回正向下标
find、rfind 找不到返回-1
find: 在字符串中从左向右查找某个符号第一次出现的位置(下标):可指定位置。
rfind: 在字符串中从右向左查找某个符号第一次出现的位置(下标):返回正向下标
转义字符
转义字符的背景
是字符串的一种,是具有特殊含义的字符串。
很久以前 ,转义字符是反斜杠\加上ASCII码表中的数字()组成的有特殊含义的字符。
在c语言中规定 \加上ASCII码表中部分符号组成的有特殊含义的字符,python用的是c语言的标准。
二、常见的转义字符
\n :换行
\t :制表符tab键,能对齐字符串,\t的宽度不一定为四个空格,\t的长度= 8 - 字符串长度 % 8
\r :将鼠标光标移动到本行开头(记忆)
’ \ " 表示’ ‘’ \ 自身
三、转义字符的长度为1
print(len('\n\t')) # 2
四、关于\r的用法,简易进度条制作
for i in range (10):
print(f'\r{i}',end='') #\r 将光标移动到行首,下一次输出替换光标后的
# 9
print()
# 使用\r 实现进度条
import time简易进度条制作
lenght = 50
for i in range(lenght+1):
#进度条的空白槽
a = (lenght - i) * ' '
b = '*' * i
print(f'\r|{b}{a}|',end = '') #一边执行一边替换
time.sleep(0.4)
原始字符串
在字符串前添加r 或者 R ,叫原始字符串。
将字符串中有特殊含义的符号变得没有意义。
str1 = r'D:\n......'
print(str1) # D:\n......
应用场景: 正则表达式、代码中引入文件路径