python基础篇---实战---用户登入注册程序
一、首先了解需求:
1、支持多个用户登入
2、登入成功后显示欢迎,并退出程序
3、登入三次失败后,退出程序,并在下次程序启动尝试登入时,该用户名依然是锁定状态
二、文件代码如下:
f = open("C:\\Users\\Administrator\\Desktop\\lock_user.txt", "r")
f.seek(0)
data1 = f.readlines()
f.close() #读取文件中每一行的数据存为列表,以便判断是否是被锁定的用户名
username_dic = {"captain08":"123qwe","captain09":"124qwe","captain10":"125qwe","captain11":"126qwe",}
n = 0
while n < 3:
_username = input("请输入用户名:")
if _username not in username_dic:
print("输入的用户名不存在,请重新输入")
continue
elif _username in data1:
#判断输入的用户名是否是黑名单
print("此用户被锁定,请与管理员联系")
exit()
else:
_password = input("请输入密码 :")
if _password == username_dic[_username]:
print("welcome",_username)
break
else:
print("密码错误,请重新输入")
n += 1
else:
f = open("C:\\Users\\Administrator\\Desktop\\lock_user.txt","r+")
data = f.readlines()
#读取文件,是为了将光标停留在文件的最后一格
f.write("\n"+_username)
#将加入黑名单的用户名写入文件内
f.close()
三、代码还可优化处:
else: f = open("C:\\Users\\Administrator\\Desktop\\lock_user.txt","r+")
data = f.readlines() #读取文件,是为了将光标停留在文件的最后一格
f.write("\n"+_username) #将加入黑名单的用户名写入文件内
f.close()
更改为:
else: f = open("C:\\Users\\Administrator\\Desktop\\lock_user.txt","a")
f.write("\n"+_username) #将加入黑名单的用户名写入文件内
f.close()
四、解题思路:
1、多个用户信息需存放,用字典的形式
2、重复三次需要用同样的代码,需用while语句
3、将输入的信息与字典内的用户名和密码进行条件判断,以此来判断登入成功与否
4、锁定用户名问题转化成通俗易懂的问题:输入的用户名信息与黑名单内容进行条件判断,若在内,用exit()退出程序。
5、运用文件的open语句建立黑名单内容
五、做题感受
①由于基础的不扎实,中途未掌握的知识点:
1、readlines后的list与文件内的内容无关,list是存在内存中的
2、writelines(list):list所有元素连在一起成一行str
3、list._str_()是将列表的所有字符全部转化成str,包括中括号,逗号
4、文件open方式:r,r+(读写),a(追加:会将光标直接移到文件末端),w
②解题思路优化
实际需求必须加深理解,并将需求转化成程序语言能解决的需求
python基础篇---实战---用户登入注册程序的更多相关文章
- python基础篇实战
1. 判断下面的结果 # 1. 判断下面的结果 # 1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 pri ...
- Struts2+AJAX+JQuery 实现用户登入与注册功能。
要求 必备知识 JAVA/Struts2,JS/JQuery,HTML/CSS基础语法. 开发环境 MyEclipse 10 演示地址 演示地址 预览截图(抬抬你的鼠标就可以看到演示地址哦): 关于U ...
- Struts2+AJAX+JQuery 实现用户登入与注册功能
要求:必备知识:JAVA/Struts2,JS/JQuery,HTML/CSS基础语法:开发环境:MyEclipse 10 关于UI部分请查看下列链接,有详细制作步骤: 利用:before和:afte ...
- python基础篇(一)
PYTHON基础篇(一) 变量 赋值 输入,输出和导入 A:输入 B:输出 C:导入 运算符 A:算数运算符 B:比较运算符 C:赋值运算符 D:位运算符 E:逻辑运算符 F:成员运算符 G:身份运算 ...
- python基础篇-day1
python基础篇 python是由C语言写的: pass 占位符: del,python中全局的功能,删除内存中的数据: 变量赋值的方法: user,pass = 'freddy','freddy1 ...
- python基础篇之进阶
python基础篇之进阶 参考博客:http://www.cnblogs.com/wupeiqi/articles/5115190.html python种类 1. cpython 使用c解释器生产 ...
- python基础篇(六)
PYTHON基础篇(六) 正则模块re A:正则表达式和re模块案例 B:re模块的内置方法 时间模块time A:时间模块的三种表示方式 B:时间模块的相互转换 随机数模块random A:随机数模 ...
- python基础篇(五)
PYTHON基础篇(五) 算法初识 什么是算法 二分查找算法 ♣一:算法初识 A:什么是算法 根据人们长时间接触以来,发现计算机在计算某些一些简单的数据的时候会表现的比较笨拙,而这些数据的计算会消耗大 ...
- python基础篇(二)
PYTHON基础篇(二) if:else,缩进 A:if的基础格式和缩进 B:循环判断 C:range()函数和len()函数 D:break,contiue和pass语句 for,while循环 函 ...
随机推荐
- 【可持久化数组】【rope】bzoj3673 bzoj3674 可持久化并查集 by zky
rope教程:http://blog.csdn.net/iamzky/article/details/38348653 Code(bzoj3673): #include<cstdio> # ...
- 【最大团转最大点独立集(匈牙利算法+时间戳优化)】BZOJ2744-[HEOI2012]朋友圈
[题目大意] 有两个国家A和B.存在以下朋友关系: 1.A国:每个人都有一个友善值,当两个A国人的友善值a.b,如果a xor b mod 2=1,那么这两个人都是朋友,否则不是: 2.B国:每个人都 ...
- ACM/CF赛制getstart模板
(包含整型变量快速读入.简易循环和连续容器的迭代器循环的宏定义.调试时的运行时间输出(编译选项应有“DEBUG”宏定义)等) 1 /*================================ ...
- Composer与laravel安装
首先,要知道Composer是什么? Composer是PHP中用来管理依赖(dependency)关系的工具.你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你 ...
- 探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用23
前言 首先说明这并不是一个教程贴,而记事本应用是网上早有的案例,对于学习 vuex 非常有帮助.我的目的是探索 vuex 2.0 ,然后使用 vuejs 2.0 + vuex 2.0 重写这个应用,其 ...
- RACLE 错误 12899 处理, oracle 11g 更改字符集
工作需要,安装装了oracle 11g,在导入其他机器上的备份数据的时间,发生一个错误: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行IMP-00003: 遇到 ORACLE ...
- Email the output of a concurrent program as Attachment
This article illustrates the steps to be followed to Email a concurrent program's output. Write a pr ...
- 你可能从未听过的 Linux 发行版
Hanthana Linux 官方主页:http://www.hanthana.org Hanthana Linux 基于 Fedora,主要面向 IT 教育,默认包含额外的编/解码器及多媒体播放器. ...
- google的开源项目总结
转自http://www.feng5166.com/blog/424.html google的开源项目值得我们一用的,这些项目很有意义,甚至可以直接用在我们自己的工作上!学习编程的的一个比较好的方式就 ...
- Android 卡顿优化 3 布局优化 工具 Hierarchy Viewer
欲善其事, 先利其器. 分析布局, 就不得不用到Hierarchy Viewer了. 本文工具使用皆以GithubApp的详情界面RepoDetailActivity为例说明. 为了不影响阅读体验, ...