python学习之路——第三弹 (作业篇第一题)

作业一:编写登录接口
1.输入用户名密码
2.认证成功后显示欢迎信息
3.输错三次后锁定。

所需知识点 文件基本读写操作,循环,列表,字典

上面的作业题是在学习完数据类型和简单的文件操作之后布置的,所以这个时间节点需要利用已有的知识完成。

作业一思路:

  输入用户名密码----输入用raw_input--有个地方存储了用户名和密码,并且用户名密码一一对应--字典或者文件

  输错三次后锁定--三次用循环--锁定用存储用户名的方式--列表,字典,文件

  成功错误--判断

所以整体代码设计如下 :

  

#/usr/bin/env python
#coding:utf-8

‘‘‘
    1.输入用户名密码
    2.认证成功后显示欢迎信息
    3.输错三次后锁定
‘‘‘

#输入用户名密码
while True:
    #获取所有用户名和其密码
    userDict = {}
    with open(‘userLogin.txt‘,‘r‘) as f:
        for line in f.readlines():
            L = line.strip(‘\n‘).split(‘,‘)
            userDict[L[0]] = L[1]

    #获取所有被锁定用户名
    userList = []
    with open(‘blackList.txt‘,‘r‘) as f:
        for line in f.readlines():
            userList.append(line.strip(‘\n‘))

    name = raw_input(‘用户名 >>‘).strip()
    passwd = raw_input(‘密码 >>‘).strip()

    if name in userList:
        print(‘这个账号被锁定了,请换个账号重新登录‘)
        continue
    else:
        if name not in userDict.keys():
            print(‘用户名不存在,请重新输入账号和密码‘)
            continue
        else:
            i = 1
            while i <= 4:
                if userDict[name] == passwd:
                    print("欢迎登录,%s"%name)
                    break
                elif i < 4:
                    passwd = raw_input(‘请重新输入密码,您还有%d次机会>>‘%(4-i)).strip()
                    i += 1
                if i ==4:
                    print(‘密码输入错误超过3次,您的账号已经被锁定了,请重新启动程序‘)
                    #用户账号加入锁定文件中
                    with open(‘blackList.txt‘,‘a+‘) as f:
                        f.writelines(name+‘\n‘)
                    break

            break

这样文件菜单目录结构如下

文件样例:

用户名密码文件内容:

xjw,1517
zjl,1516
gl,1515
xrf,1518

黑名单文件:

xjw
gl

以上就基本实现了登录的用户交互的界面,因为中间还没涉及到类和方法,所以代码有点冗余,希望之后在学习之后再做改进!

  

时间: 2024-10-14 10:58:11

python学习之路——第三弹 (作业篇第一题)的相关文章

Python 学习之路(三)

Python 学习之路(三) 以下所用的是Python 3.6 一.集合部分 集合是一个无序的,不重复的数据集合,主要用来去重,以及关系测试:交集,差集,并集等 1.1 关系操作 1.1.1 列表去重 可以给列表去重,例如: 1 set_demo = [1,2,3,4,5,3,2,1] # 列表 2 set_demo = set(set_demo) # 转换成集合,来去重 3 print(set_demo) 1.1.2 取交集 intersection()方法 可以获得两个集合的交集部分,例如:

python学习之路(三)使用socketserver进行ftp断点续传

最近学习python到socketserver,本着想试一下水的深浅,采用Python3.6. 目录结构如下: receive_file和file为下载或上传文件存放目录,ftp_client为ftp客户端,ftp_server为server端. server端源码: #!/usr/bin/env python # -*- coding:utf-8 -*- import socketserver import os error_code = {'400':'FILE IS NOT EXISTS'

python学习之路-第三天-一个简单的脚本

现在有一个需求:把某个目录下的文件备份到指定到另外一个目录下,而且压缩后文件为zip文件 # -*- coding:utf-8 -*- #! /usr/bin/python # Filename:backup_v1.py import os import time source = [r'H:\StudyLib\lib'] # 源文件目录,是个列表,可以放入多个目录 target_dir = 'I:\\backpacks\\' # 目标目录 target = target_dir + time.

python学习之路-第三天-函数

函数 函数的定义关键字:def 使用global语句可以清楚地表明变量是在外面的块定义的 示例:(函数运行完毕后x的值是2) #!/usr/bin/python # Filename: func_global.py def func(): global x print 'x is', x x = 2 print 'Changed local x to', x x = 50 func() print 'Value of x is', x 可以给形参加上默认值,默认参数是不可变的,而且只有在形参表末

Python学习之路 (三)爬虫(二)

通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份. 通用搜索引擎(Search Engine)工作原理 通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果. 第一步:

我的python学习之路——前三天总结

1.基础入门1.1第一个Python代码 首先创建一个任意文件,结尾为py格式,然后在里面打入代码,在pycharm或者Python shell里面运行 print("钓鱼要钓刀鱼,刀鱼要到岛上钓") 1.2解释器编码 ascii,8位=1字节,一个英文字母是一个字节,py2的默认解释器编码就是ASCII码. Unicode,32位=4个字节,又叫万国码,一个字母或者汉字都是4个字节 utf-8,这是unicode的压缩版本,一个英文字母是一个字节,一个汉字是3个字节,py3的默认解释

Python学习之路(三):基础知识之运算符

1.while循环 1.1 while基本格式 while循环体格式为: while 循环条件: 循环体1 循环体2 1 count = 1 2 while count <= 10: # 循环条件的关键在于控制循环次数 3 if count != 7: 4 print(count) 5 count = count + 1 1.2 break 运用break能够在适当的条件下终止循环,即跳出当前循环,执行循环外下面的语句. 1 num = 1 2 while num < 3: 3 print(n

Azure云平台学习之路(三)——Cloud Services

1.什么是云服务? 能够部署高度可用的且可无限缩放的应用程序和API.简而言之,就是你写的CMD程序按照一定的框架进行少量修改就能运行在Azure云平台上. 2.Azure云服务有什么特点? (1)专注应用程序而不是硬件,PaaS的一种. (2)支持多种框架和语言. (3)集成了运行状况监视和负载平衡. (4)自动缩放优化成本和性能 3.建立云服务之前,我们需要建立一个云存储,来记录我们的程序的日志信息(当然,这不是必须的) (1)选择左边导航栏的"存储".主面板上显示的是所有已有的存

Python学习之路【第一篇】-Python简介和基础入门

1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 5(数据源自最新的TIOBE排行榜). 来头不小啊!二十多种主流的开发语言,我该从哪一个开始呢?人生苦短,let‘s python! 1.2 Python的由来和发展趋势 Python的前世源自鼻祖“龟叔”.1989年,吉多·范罗苏姆(Gu