字符串的常见操作
- 获取长度:len
- 查找内容:find、index、rfind、rindex
- 判断:startswith、endswith、isalpha、isdigit、isalnum、isspace
- 计算出现次数:count
- 替换内容:replace
- 切割字符串:split、rsplit、splitliness、partition、rpartition
- 修改大小写:capitaliza、title、upper、lower
- 空格处理:ljust、rjust、center、lstrip、rstrip、strip
- 字符串拼接:join
注意:在python中,字符串是不可变的!所有的字符串相关方法,都不会改变原有的字符串,都是返回一个结果,在这个新的返回值里,保留了执行后的结果!
一、find特点:从左向右查找,只要遇到一个符合要求的,则返回位置,如果没有找到任何符合要求的则返回-1
例如:
path = 'https://www.baidu.com/img/dong_e70247ce4b0.gif'
# find、index、rfind、rindex
i = path.find('_')
print(i)
image_name = path[i+1:]
print(image_name)
![Il 678
679
680
681
675
676
677
image_name path [1+1:]
' https : / /www . baidu . . qif '
path
# find, index. rfind» rindex
i = path. find('_')
print (i)
print(image_name)
D:\python\python.exe C:/Users/zongzi/PycharmProjects/pythonPl
30
e7@247ce4b0. gif
Process finished with exit code @](https://img2022.cnblogs.com/blog/2465089/202202/2465089-20220213121035851-1071397282.png)
二、rfind:从右向左查找,只要遇到一个符合要求的,则返回位置,如果没有找到任何符合要求的则返回-1
# rfind (right find)
i = path.rfind('.')
zhui = path[i:]
print(zhui)
![682
-#
683
684
685
686
687
688
689
693
rfind
(right find)
path . rfind('
- path[i:]
zhU1 -
print(zhui)
D:\python\python.exe C:/Users/zongzi/Pych
. gif
Process finished with exit code 0](https://img2022.cnblogs.com/blog/2465089/202202/2465089-20220213121035829-388465260.png)
三、count:统计指定字符的个数
'''
查找字符串中有几个‘.’
使用count
'''
n = path.count('.')
print(n)

四、index与find区别:index也是表示查找,但是如果找不到会报错


五、判断:startswith、endswith、isalpha、isdigit、isalnum、isspace
返回值都是布尔类型(True,False)
s = 'e70247ce4b0a3e5ba73e8b3b05429d84.gif'
1.startswith

2.endswith

练习:
模拟文件上传,键盘输入上传文件的名称(abc.jpg),判断文件名(abc)是否大于6位以上,扩展名是否是:jpg,gif,png格式
如果不是则提示上传失败,如果名字不满足条件,而扩展名满足条件则随机生成一个6位数字组成的文件名,打印成功上传xxxxxx.png
判断名字
![713
714
715
716
717
719
720
721
722
723
724
725
726
727
I A 4 23
random
= input('$fik ')
file
if fite.endswith('jpg') or fite.endswith(' gif') or file.endswith('png'):
i = file.rfind('
name -
# ten(name)
if ten(name) < 6:
str(n) + fite[i:]
file
print % file)
else:
print('
999999)
D: C:/Users/zongzi/PycharmProjects/pythonProject1/khjÉW.py
. pnglf!k
Process finished with exit code O](https://img2022.cnblogs.com/blog/2465089/202202/2465089-20220213121035882-741754577.png)
考察知识点:1.endswith(是否是xxx结尾的) 2.查找“.”所在的位置(切片操作)3.使用 “+”两边类型要一致 4.if…else语句
字母和数字的组合
# 字母和数字的组合(随机数,如:验证码)
filename = ''
s = 'QWERTYUIOPAASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
for i in range(6):
index = random.randint(0, len(s) - 1) # 随机产生下标
filename += s[index] # 获取下标匹配的字母
print(filename)
![• 728
729
730
731
732
733
734
735
736
Run:
filename = '
s:'
Sfor i in range(6):
Len(s)
index =
filename st index]
print(fitename)
D:\python\python.exe
AAVRb3
Process finished with exit code @](https://img2022.cnblogs.com/blog/2465089/202202/2465089-20220213121035884-2079990345.png)
组合一下:
import random
file = input('输入上传图片文件全称:')
# 判断扩展名
if file.endswith('jpg') or file.endswith('gif') or file.endswith('png'):
# 判断文件名字
i = file.rfind('.')
name = file[:i]
# len(name)
if len(name) < 6:
# 重新构建名字,产生字母和数字的组合名称
filename = ''
s = 'QWERTYUIOPAASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890'
for a in range(6):
index = random.randint(0, len(s) - 1) # 随机产生下标
filename += s[index] # 获取下标匹配的字母
# filename 文件名 和后缀进行拼接
file = filename + file[i:]
# 完整的文件全称名字
print('成功上传%s文件' % file)
else:
print('文件格式错误,上传失败!')
![737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
random
file
if file.endswith( 'jpg') or file.endswith( 'gif') or file.endswith('png'):
i = file.rfind(
name
# ten(name)
if ten(name) < 6:
filename =
for a in range(6):
= Len(s)
- 1) # Pifit4Li&fr_
index
filename s [index] #
# filename
= filename + filet i:]
file
print % file)
else:
print('Ifrt6Äthii. ')
if file.endswith('jpg') or file...
hÜJ±fteh5E12. j pg.-fr
if len(name) < 6](https://img2022.cnblogs.com/blog/2465089/202202/2465089-20220213121035879-714441862.png)
3.isdigit :判断是否全部是数字组成

4.isalpha:判断是否全部是字母组成

5.isalnum:判断是否由数字或字母组成

6.isspace:判断是否由空白的字符串组成

7.isupper:判断是否全部是大写字母

8.islower:判断是否全部是小写字母

练习:
'''
admin123 15811119999 200325
用户名或者手机号码登录+密码,
用户名:全部小写,首字母不能是数字,长度必须6位以上
手机号码:纯数字,长度11位
密码必须是6位数字
以上符合条件,则进入下层验证:
判断用户名+密码是否是正确,成功否则登录失败
'''


浙公网安备 33010602011771号