Day07
总结
字符串的内置方法
1.strip()
清除字符串首尾的字符,默认清楚空格,可以自定义方向
'''
s1 = '@@qwer@@@@@'
print(s1.strip('@')) # qwer
print(s1.lstrip('@')) # qwer@@@@@
print(s1.rstrip('@')) # @@qwer
'''
2.大小写相关操作
'''
s1 = 'AbcDefG'
print(s1.lower()) # abcdefg(转换为小写)
print(s1.upper()) # ABCDEFG(转换为大写)
print(s1.islower()) # 判断是否为纯小写 Fasle
print(s1.isupper()) # 判断是否为纯大写 False
验证码的应用:
要想验证码不区分大小写,只需将输入的验证码统一大小写即可
'''
3.判断字符串首尾是否为指定字符
'''
s1 = 'a b c d e f g'
print(s1.startswith('a')) #True
print(s1.endswith('f')) # False
值得注意的是
print(s1.endswith('f g')) # True
'''
4.互动,格式化输出
(1)占位符
(2)format的使用
#1 使用{}占位
print('This night is {}, {} let it go.'.format('sparkling', 'don`t'))
# This night is sparkling, don`t let it go.(出自taylor swift《enchanted》)
#2 索引取值
print('This night is {0}, {1} let it go. {1} be shy.'.format('sparkling', 'don`t'))
# This night is sparkling, don`t let it go. don`t be shy.
#3 根据key取值
print('This night is {first}, {sec} let it go.'.format(first='sparkling', sec='don`t'))
#
#4 用已经定义的变量(推荐)
first = 'sparkling'
sec = 'don`t'
print(f'This night is {first}, {sec} let it go.')
f不要漏写了
:
5.拼接字符串
s1 = '今天晚上吃什么'
s2 = '明天早上吃什么'
print(s1 + s2) # 今天晚上吃什么明天早上吃什么;这种方式会创造多余的内存空间,效率较低,不推荐
print(s1 * 2) # 今天晚上吃什么今天晚上吃什么
只能加和乘,不能减和除
# join
print('*'.join(s1)) # 今*天*晚*上*吃*什*么
print('*'.join(['a', 'b', 'c'])) # a*b*c
对象中的元素必须为字符串
6.替换字符串中的字符
s1 = 'my name is Amy,yes,Amy'
print(s1.replace('Amy','Faye')) # my name is Faye,yes,Faye
默认替换所有,可以调整
eg:
s1 = 'my name is Amy,yes,Amy'
print(s1.replace('Amy','Faye',1)) # my name is Faye,yes,Amy
7.判断字符串是否为纯数字
s1 = '12345'
print(s1.isdigit()) # True
字符串为'12.345'也不行,会返回False,因为'.'不是数字
:
8.查找字符对应的索引值
s1 = '12345'
print(s1.find('3')) # 2 从左往右,找到第一个就停
print(s1.find('3', 1, 3)) # 意思是查找索引值1,2中的'3',找不到返回-1
print(s1.index('4')) # 3
9.填充文本
id = 'center'
print(id.center(20,'-')) # -------center-------
print(id.ljust(20,'-')) # center--------------
print(id.rjust(20,'-')) # --------------center
print(id.zfill(20)) # 00000000000000center
10.取消斜杠与特定字母组合的含义
# 在字符串前加一个r
11.captalize,swapcase,title
# captalize:首字母大写
# swapcase:大小写反转
# title:每个单词首字母都大写
列表内置方法
# 1.类型转换(支持转换for循环的数据类型)
# 2.索引取值
list = ['adele','rihanna','faye wong']
print(name_list[0]) # adele
2.切片
print(list[0:2]) # ['adele', 'rihanna']
print(list[0:2:-1]) # ['faye wong', 'rihanna']
3.间隔取值
print(list[0:3:2]) # ['adele', 'faye wong']
4.统计数目
print(len(list)) # 3
5.成员运算,判断元素而非元素中的字符
print('a' in list) # False
print('adele' in list) # True
6.添加元素
(1)尾部添加单个元素
list.append('billy')
print(list) # ['adele', 'rihanna', 'faye wong', 'billy']
(2)指定位置插入元素
list.insert(2, 'jason') # ['adele', 'rihanna', 'jason', 'faye wong']
(3)合并list
list.extend([1, 2, 3, 4]) # ['adele', 'rihanna', 'faye wong', 1, 2, 3, 4]
:
7.删除元素
(1)del
del list[1] # ['adele', 'faye wong']
(2)指定删除
print(list.remove('adele'))
# None(删除成功)
['rihanna', 'faye wong']
(3)延迟删除(可以指定索引值)
print(list.pop()) 、
# faye wong
['adele', 'rihanna']
8.修改列表元素
list[0] = '1' # ['1', 'rihanna', 'faye wong']
9.排序
s1 = [1, 312, 32, 31, 311]
s1.sort() # [1, 31, 32, 311, 312]
默认升序
可以通过ss.sort(reserse=True)修改为降序
10.颠倒
s1.reverse() # [311, 31, 32, 312, 1]
11.比较运算
s1 = [1, 312, 32, 31, 311]
s2 = [21, 2123, 121, 2]
print(s1 > s2) # False
12.统计列表中某元素出现次数
s1 = [1, 2, 3, 2, 1]
print(s1.count(1)) # 2
可变与不可变类型
对象的内容可变,而不可变对象是指对象内容不可变;
可变数据类型:value值改变,id值不变;不可变数据类型:value值改变,id值也随之改变。
不可变:int、字符串、float、元组
可变:字典、列表
队列与堆栈
队列
先进先出
# 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 ***百度百科的定义
堆栈
先进后出
# 在计算机领域,堆栈是一个不容忽视的概念,堆栈是一种数据结构,而且是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。 ***百度百科的定义
作业
# 编写一个用户登录程序
# 要求最多尝试失误三次 过期自动提示并可重置尝试次数
# 用户登录成功之后进入内部循环 用户输入什么就打印什么 并给用户提供一个结束程序的特殊指令
# 获取用户输入的用户名和密码可以处理首尾空格
# 用户的用户名和密码使用变量存储 通过程序获取用户名和密码比对
# data = 'jason|123'
# # 1.将登录功能编写成多用户模式
# 2.利用列表编写一个用户注册、登录程序
# 提示:循环
# 要求:成功一次即可 无需考虑用户冲突等情况
# 3.不使用count统计列表中指定元素出现的次数
# 总感觉有东西没写好,又找不出来。。。等我在学一段时间再来看看吧
data = ['jason|123', 'john|321', 'jerry|123']
count = 0
is_login = input('l:“登录”/r:"注册",请选择')
flag = True
while count < 3 and flag:
while count < 3:
if is_login == 'l':
username = input('用户名>>>:').strip()
password = input('密码>>>:').strip()
tem_user = username + '|' + password
if tem_user in data:
print('登陆成功')
while True:
cmd = input('登陆成功,请输入指令,按q退出>>>:')
print(cmd)
if cmd == 'q':
flag = False
break
break
else:
print('账号或密码错误')
count += 1
elif is_login == 'r':
username = input('用户名>>>:').strip()
password = input('密码>>>:').strip()
tem_user = username + '|' + password
if tem_user in data:
print('用户名已存在,注册失败')
else:
data.append(tem_user)
print('注册成功,赶紧登录吧')
else:
choice = input('请输入y/n决定是否继续登录')
if choice == 'y':
count = 0
continue
else:
break

浙公网安备 33010602011771号