第二天 python基础
今日作业

用函数实现登录功能:
# 测试用数据
with open('usrdata.txt', 'wt', encoding='UTF-8') as f:
f.write('用户名:zxy1997,密码:123456789.\n用户名:zxy19970406,密码:123456789.')
def login():
'''
登录函数
'''
usr = ''
pwd = ''
dict1 = {}
with open('usrdata.txt', 'rt', encoding='UTF-8') as w:
for line in w:
line = line.split('\n')[0].split(',')
for data in line:
if '用户名' in data:
usr = data[4:]
else:
pwd = data[3:]
dict1[usr] = pwd
while True:
usr1 = input('请输入用户名:').strip()
if usr1 in dict1:
i = 1
while i <= 3:
pwd1 = input('请输入密码:')
if pwd1 == dict1[usr1]:
print('登陆成功!')
break
else:
i += 1
else:
print('密码错误超过三次!')
else:
print('用户名不存在!')
break
login()
实验结果:
请输入用户名:zxy
用户名不存在!
请输入用户名:zxy1997
请输入密码:123456789.
登陆成功!
请输入用户名:zxy1997
请输入密码:123456789
请输入密码:1111
请输入密码:222
密码错误超过三次!
今日知识盘点:
1、数据类型剩余的内置方法
2、字符编码
3、文件处理
4、函数基础
数据类型剩余的内置方法
列表类型
初始代码
list1 = ['zxy', 22, 'male', 170, 55.5, '安徽']
1.list.insert()
第一个参数:索引值,第二个参数:要插入的值(会替换当前插入索引对应的值)
list1.insert(2, 'good man')
print(list1)
结果:
['zxy', 22, 'good man', 'male', 170, 55.5, '安徽']
2.pop()
取出
list2 = list1.pop(1)
print(list2)
print(list1)
结果:
22
['zxy', 'male', 170, 55.5, '安徽', 22]
3.remove()
移除
list1.remove('zxy')
print(list1)
结果:
[22, 'male', 170, 55.5, '安徽', 22]
4.count()
统计某个值出现的个数
print(list1.count(22))
结果:
2
5.
print(list1.index(170))
结果:
3
6.clear()
清空列表的值
print(list1.clear())
结果:
None
7.copy()
# 7.copy() # 浅拷贝
# 将list1的内存地址浅拷贝赋值给list2
list2 = list1.copy()
print(list2, '添加值前')
# 将list1的原地址直接赋值给了list3
list3 = list1
print(list3, '添加值前')
# 深拷贝()
from copy import deepcopy
# 将list1的值深拷贝赋值给list4
list4 = deepcopy(list1)
# 追加jason到list1中
list1.append('jason')
print(list2, '添加值后')
print(list3, '添加值后')
# 给list1中的可变列表进行追加值
list1[6].append('zzzz')
# 打印直接赋值、深、浅拷贝的结果
# 浅拷贝: list1的列表中外层值改变对其不影响
# 但对list1中的可变类型进行修改则会随之改变值
print(list2)
print(list3)
# 深拷贝: 把list1中的所有值完全拷贝到一个新的地址中
# 进而与list1完全隔离开
print(list4)
结果
['zxy', 22, 'male', 170, 55.5, '安徽', 22] 添加值前
['zxy', 22, 'male', 170, 55.5, '安徽', 22] 添加值前
['zxy', 22, 'male', 170, 55.5, '安徽', 22] 添加值后
['zxy', 22, 'male', 170, 55.5, '安徽', 22, 'jason'] 添加值后
Traceback (most recent call last):
File "E:/pytest/2019年6月12日/001 数据类型剩余的内置方法.py", line 46, in <module>
list1[6].append('zzzz')
AttributeError: 'int' object has no attribute 'append'
上述结果报错,因为list1[6]是int不能使用append()应改为列表型,不再做赘述

浙公网安备 33010602011771号