第二天 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()应改为列表型,不再做赘述

posted @ 2019-06-12 20:18  Vvvvyy  阅读(239)  评论(0)    收藏  举报