字符串的常见操作

  • 获取长度: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 @

 

二、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

三、count:统计指定字符的个数

'''

查找字符串中有几个‘.’

使用count

'''

n = path.count('.')

print(n)

688 
689 
690 
691 
e 692 
693 
694 
695 
696 
697 
f&count 
n path. count(' 
print(n) 
D:\python\python.exe C: / Users/zongzi/PycharmPr 
3 
Process finished with exit code @

 

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

 

695 
696 
697 
i = path. 
print(i) 
Run: 
D: . exe C : / Users/zongzi/PycharmProje 
Traceback (most recent call Last): 
File "C: / Users/zongzi/PycharmProjects/pythonPrc 
path. 
ValueError: substring 
Process finished with 
not found 
exit code 1

698 
700 
701 
Run: 
= path. find('dong') 
print(i) # 
D:\python\python.exe C:/Users/zongzi/PycharmPro 
26 
Process finished with exit code @

 

 

五、判断:startswith、endswith、isalpha、isdigit、isalnum、isspace

返回值都是布尔类型(True,False)

 

s = 'e70247ce4b0a3e5ba73e8b3b05429d84.gif'

 

1.startswith

 

731 
732 
704 
s - 'e70247ce4b@a3e5ba73e8b3b05429d84.gif' 
result 
point (result) 
Run: Y 
D: C:/Users/zongzi/PycharmProjects/pythonProje 
True 
Process finished with exit code O

 

 

2.endswith

705 
707 
= s.endswith('mp4') 
result 
print(resutt) 
D:\python\python.exe C:/Users/zongzi/PycharmProjects/pythonProj 
False 
Process finished with exit code

 

练习:

模拟文件上传,键盘输入上传文件的名称(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

考察知识点: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 @

组合一下:

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

3.isdigit :判断是否全部是数字组成

 

768 
769 
770 
771 
772 
773 
result s.isdigit() 
print (result) 
D: C:/Users/zongzi/PycharmProjects/py 
True

 

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

 

763 
764 
765 
766 
763 
Run: 
HELLO' 
- s.isatpha() 
result - 
print (result) 
D:\python\python.exe C:/Users/zongzi/PycharmProjects/ 
True

 

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

 

result = s.isatnum() 
print (result) 
D:\python\python.exe C:/Users/zongzi/PycharmProjects/pythc 
True

 

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

 

778 
779 
783 
Run: 
- s.isspace() 
result - 
print (result) 
D:\python\python.exe C:/Users/zongzi/PycharmProjects/pyth 
True

 

 

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

 

s = 'HELLO' 
- s.isupper() 
result - 
print (result) 
D: C:/Users/zongzi/PycharmProjec 
True

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

result = s.islower() 
print (result) 
D:\python\python.exe C:/Users/zongzi/PycharmProjects 
True

 

练习:

'''

admin123  15811119999  200325

用户名或者手机号码登录+密码,

用户名:全部小写,首字母不能是数字,长度必须6位以上

手机号码:纯数字,长度11位

密码必须是6位数字

 

以上符合条件,则进入下层验证:

判断用户名+密码是否是正确,成功否则登录失败

'''

796 
797 
798 
799 
801 
802 
803 
805 
806 
807 
808 
809 
813 
811 
812 
813 
814 
815 
816 
817 
flag = True 
white flag: 
name 
if (name.islower() and .isatpha() and ten(name) 
while True: 
input( 
password = 
if Len(password) 6 and password.isdigit(): 
6) or 
(name.isdigit() and ten(name) = 
'200325': 
= 11): 
if (name 
' admini23 ' 
flag 
= False 
break 
else: 
print('hdPZüüs, 
break 
else: 
print('ü 
else: 
print ( ' ! 
D:\python\python.exe 
or name 
200b2i 
Run

s = 'HELLO' 
- s.isupper() 
result - 
print (result) 
D: C:/Users/zongzi/PycharmProjec 
True