python学习 day3 (3月4日)---字符串
字符串:
下标(索引)
切片[起始:终止]
步长[起始:终止:1] 或者-1 从后往前 -1 -2 -3
15个专属方法:
1-6 : 格式:大小写 , 居中(6)
s.capitalize() s.title() s.upper() s.lower() sss.swapcase()
sss.center(20)
s = 'liu#yang' s1 = s.capitalize() #首字母大写 print(s1) s2 = s.title() # 非字母隔开的 print(s2) s3 = s.upper() # 全都大写 print(s3) s4 = s.lower() # 全都小写 print(s4) sss = 'LiuYang' s5 = sss.swapcase() # 和原来大小写相反 print(s5) s6 = sss.center(20) # 空出 20 左右吗? 个格 s6 = sss.center(20,'*') # 空出 20 左右吗? 个格 print(s6) #******LiuYang**** 可以用来这样 注释
实例:
验证码登录验证两个问题:
(1).不分大小写
(2).有空格或者是指标等问题
#1.验证码的 问题 都变成一样大的 然后再匹配相等 而不是 2**4 code = 'liuyang'.upper() # username = input('姓名').upper() while True: your_code = input('姓名').upper() if code == your_code: print("ok") break else: print("请重新输出:") code = 'liuyang'.upper() # 2.username = input('姓名').upper() while True: your_code = input('姓名').strip() if code == your_code: print("ok") break else: print("请重新输出:")
重要的三个 方法: 去除 ,分割, 嵌入 :s.strip() s.split() s9='*'.join(l1)
去除:默认去除两边空格
指定去除特定元素
分割:str --------------> list
嵌入:list --------------> str
7.去除:s.strip()方法:
# strip 去除 默认去除 空格 制表符 换行符 但是 也可以指定元素 从左或右 s = 'qwasxlexyt' s7 = s.strip('qwla') # 不按顺序 切片 去除字符 (条纹) print(s7) # 同时从两边检索 s7 = s.strip('xle') # 从左边开始检索 print(s7) s7 = s.rstrip('t') # 特殊字符停止吗? s71 = s.strip('t') print(s7) print(s71) s7 = s.strip('ytq') # 不论顺序 ,从两边 中间的就不行了 # print(s7)
8.分割: s.split() 方法
# str --------------> list ********* s = 'a b c' l = s.split() # (分裂) print(l) # ['a', 'b', 'c'] l = s.split(',') print(l) # ['a b c'] 去了, 变成了一个元素 s = 'a刘a洋a' # 有多少个 输出多一个 列表元素 print(s) l = s.split('a') #所以有四个 print(l) l = s.split('a' , 1) # 分为两个 l1 = s.rsplit('a' , 1) # 从右往左输出 print(l) print(l1) #['a刘a洋', '']
9.嵌入:s9='*'.join(l1) # join 虽然处理的是可迭代,但是还是最终处理的是字符串(同学说的)
int 错误[1,2,3]或者str[list] [‘1’,‘2’,‘3’]对
# join *** 嵌入元素 *** s = 'liuyang' s9 = '*'.join(s) print(s9) l1 = ['liuyang' , 'gege' , 'mengge'] s9 = ','.join(l1) print(l1) # ['liuyang', 'gege', 'mengge'] print(s9)#liuyang,gege,mengge # 操作列表 变成字符串吗?
dic = {'2':3, '3':3,'1':3}
l1 = '*'.join(dic)
2*3*1
10. 判断开头结尾:s.startswith() s.endswith()
s = 'liuyang' s10 = s.startswith('a') print(s10) s11 = s.endswith('g') print(s11)
12.找某个字符的索引: find()
# find 找某个字符 的 索引 ** s = 'liuyang' s12 = s.find('l') print(s12) s12 = s.find('i' , 2 , ) # 从第三位开始 print(s12) # 找不到就抱-1 # s13 = s.index('i' , 2 ,) # print(s13) # 找不到就报错
index
14替换:replace()
# 替换 s = "刘洋学习 python , python 简单 , python 执行效率高" print(s) s14 = s.replace('python','Java') print(s14)
15.第二种格式化输出:format ()
###############################format 除了字符串 外的 格式化输出 s = '我们{}, 今天{} , 学习{}' # 注意用英文 , 括号 会打两下 s15 = s.format('20期','星期一','python') print(s15) s = '我们{0}, 今天{1} , 学习{2} , 生命苦短,我用{2} ' # 注意用英文 , 括号 会打两下 s15 = s.format('20期','星期一','python') print(s15) s = '我们{name}, 今天{time} , 学习{lesson} , 生命苦短,我用{lesson} ' # 注意用英文 , 括号 会打两下 s15 = s.format(name='20期' , lesson= 'java' ,time = '星期一') print(s15)
16.判断:isdigit() isalpha() isalnum()
# is 判断 s = 'liuyang' s1 = '5shiliuyang' s2 = '1111111' print(s.isdigit()) # 只有数字组成 print(s.isalnum()) #数字和字母 print(s.isalpha()) # 只有字母组成
17数数: 公共方法 和 专属方法
# 数数 print(len(s)) print(s.count('l')) print(s2.count('1'))
lis.sort() # 从小到大大
lis.sort(reverse = True) # 从大到小
lis = [1,2,3]
new_lis = lis.reverse() # 倒序
print(new_lis) # 过程 为None
print(lis) # [3,2,1]
元组:
() (22) (22,)