一、常用的字符串方法(一):(字符串是不能被修改的)
1)a.strip() #默认去掉字符串两边的空格和换行符
a = ' 字符串 ' c = a.strip()
a.lstrip() #默认去掉字符串左边的空格和换行符 a.rstrip() #默认去掉字符串右边的空格和换行符
#如果strip()方法指定一个开头或者结尾的值,那么去掉这两个值,前后有空格都不能去
words = 'today is a wonderful day' print(words.strip('day')) #只能去掉开头的day或者结尾的day
2)words.count('a') #统计字符串出现的次数
print(words.count('a')) #统计字符串出现的次数
3)words.index('ia') #找某个字符串的下标,如果元素不存在会报错
print(words.index('z')) #找下标,如果元素找不到的话,会报错
4)words.find('ia') #找某个字符串的下标,如果元素不存返回-1
print(words.find('z')) #找下标,如果元素找不到的话,返回-1
5)replace()替换字符串(常用)
print(words.replace('day','DAY')) #替换字符串
6)#isdigit()判断字符串是否全为纯数字,返回True/False
print(words.isdigit()) #判断字符串是否为纯数字 0-9
if number.isdigit() and int(number)!=0: #判断一个数是否是正整数,这个方法包含0,所以生成的数量不能是0 pass
7)#isalpha()判断字符串是否全为汉字或字母
username = 'abcde11' print(username.isalpha()) #False
8)#isalnum()判断字符串是否全是汉字或字母或数字(只要没有特殊符号)
username = 'abcde11##' print(username.isalnum()) #有特殊符号,返回False
9)#islower()判段如果字符串包含了字母,这些字母都是小写字母(没有大写的)
username = 'bbaaa#1' print(username.islower()) #有特殊符号,也返回Ture
10)#isupper()判段如果字符串包含了字母,这些字母全是大写字母(没有小写的)
username = 'B#1' print(username.isupper()) #有特殊符号,也返回Ture
11)#判断是否以某个字符串开头
print(words.startswith('https'))
12)#判断是否以某个字符串结尾
print(words.endswith('.jpg')) #是否以.jpg结尾
13)#将字符串变成大写/小写
print(words.upper()) #变成大写 print(words.lower()) #变成小写
14)将字符串里的字母大写变成小写,小写变成大写
print(a.swapcase())
二、字符串的常用方法(二):
#想要将list转换为str,不要通过str()强制转换,因为转换后的第一个元素是中括号[
lis = ['a','b','c'] sl = str(lis) print(sl) #相当于sl = " ['a','b','c'] " print(sl[0]) #转换后第一个元素是[
>>>['a', 'b', 'c']
[ #转换后第一个元素是[
1)res = ''.join(l)
①把一个list变成了字符串;
②通过引号中的某个字符串把list中的每个元素连接起来
③只要是可以循环list、字符串、元组等,join都能把里面的每个元素连接起来
lista = ['zhang','liu','liang'] res = ''.join(lista) #默认空格连接 res2 = 'N'.join(lista) #用引号中的字符串连接起来 print(res,res2) >>> zhangliuliang zhangNliuNliang
join拼接字符串:只能是字符串,将多个字符串放在一个list里面
name = 'zhangsan' pwd = '123456' c = '北京市' all = ','.join([name,pwd,c]) #先要将字符串放进list中(因为jion只能有一个参数,相当于一个list['zhangsan','123456','北京市']) print(all)
2)s. split() 分割字符串:
s. split(',') #按照引号中的字符串或分隔符,分割字符串
s. split() #括号中没有传值的话,按照空格分割
names = 'zhangsan,zili,caomi' name_list = names.split(',') #以逗号分割字符串 name_2 = names.split('a') #以字符串中的‘a’来分割 print(name_list) #字符串分割后,返回一个list print(name_2) >>> ['zhangsan', 'zili', 'caomi'] >>> ['zh', 'ngs', 'n,zili,c', 'omi'] #以a分割,a就没有了
3)s.format 字符串格式化
age = 18 name = 'zhangsan' sex = 'male' sql = "insert into user VALUES ('{name}','{sex}',{age});" new_sql = sql.format(age=age,sex=sex,name=name) print(new_sql) >>> insert into user VALUES ('zhangsan','male',18);
4)s.center(50,'*') #
print('欢迎登录'.center(50,'*')) #不够50个字符,两边以“*”补齐
>>> ***********************欢迎登录***********************
5)'xx'.zfill() 字符串的方法:补零
print('3'.zfill(4)) #’3’字符串不足4位的在前面补零
>>> 0003
三、string模块的字符串方法:
import string print(string.ascii_lowercase) #所有的小写字母 print(string.ascii_uppercase) #所有的大写字母 print(string.digits) #所有的数字 print(string.ascii_letters) #所有的大写字母和小写字母 print(string.punctuation) #所有的特殊字符
【例1】:
# 校验密码里面是否包含 # 数字、大写字母、小写字母、特殊符号 import string nums_set = set(string.digits) upper_set = set(string.ascii_uppercase) lower_set = set(string.ascii_lowercase) pun = set(string.punctuation) for i in range(5): pwd=input('请输入密码:').strip() pwd_set = set(pwd) if pwd_set & nums_set and pwd_set & upper_set and pwd_set & lower_set and pwd_set & pun: print('密码是合法的',pwd) else: print('密码必须包含大写字母、小写字母、数字和特殊字符')
【例2】:校验密码是否合法
#校验密码是否合法的程序: #输入一个密码 #1、长度5-10位 #2、密码里面必须包含,大写字母、小写字母和数字 #3、最多输入5次 for i in range(5): passwd = input("请输入密码:").strip() #去掉空格 if passwd != '': if len(passwd)>4 and len(passwd)<11: num_count = 0 lower_count = 0 upper_count = 0 for p in passwd: #循环字符串 if p.isdigit(): #是否包含数字,是的话+1 num_count += 1 elif p.islower(): #是否包含小写字母 lower_count += 1 elif p.isupper(): #是否包含大写字母 upper_count += 1 if num_count>0 and lower_count>0 and upper_count>0: print("密码校验通过") break else: print("密码必须包含大写字母、小写字母和数字") else: print("密码长度为5-10位") else: print("密码不能为空") else: print("错误次数过多")
【例3】:校验密码是否合法-集合方式
#校验密码是否合法的程序: #输入一个密码 #1、长度5-10位 #2、密码里面必须包含,大写字母、小写字母和数字 #3、最多输入5次 import string digits_set = set(string.digits) #所有数字的集合 upper_set = set(string.ascii_uppercase) #所有大写字母的集合 lower_set = set(string.ascii_lowercase) #所有小写字母的集合 for i in range(5): passwd = input("请输入密码:").strip() #去除两边的空格 passwd_set = set(passwd) #转换为集合 if passwd=='': print("密码不能为空") elif len(passwd)>11 and len(passwd)<4: print("密码长度为5-10位") elif passwd_set & digits_set and passwd_set & upper_set and passwd_set & lower_set: #取交集 print("密码合法") break else: print("密码必须包含大写字母、小写字母和数字") else: print("错误次数过多")