初学者的python学习笔记1——作业篇
既然是学习,作业必不可少,其实在看后面讲思路之前还是感觉自己写的不错,但是和后面一对比,感觉实在是想的太片面太肤浅了,还需要太多太多改进的地方。
首先放一下作业要求。
最开始做的时候真的是完全按照字面的要求去做,再回来看看总有一种缺少思考的感觉,现在先把第一遍作业的代码放出来,之后会根据视频讲解进行改进,到时候再对比一下吧。
#作业一
#!/usr/bin/env python
import os #加载模块
name1 = "n" #正确的用户名
pd1 = "qqqqq" #正确的密码
if os.path.exists("suoding.log"): #判断锁定文件是否存在
print("系统锁定")
exit(1) #如果存在则退出
suoding=0 #锁定变量 0为非锁定,1为锁定
cishu = 0 #输入错误的次数
zuidacishu = 3 #错误次数上线
if suoding==0:
for i in range(zuidacishu): #错误次数上线的循环
suoding=0
name = input("请输入用户名:")
pd = input("请输入密码:")
if name == name1 and pd == pd1: #判断账号密码错误
print("认证成功,欢迎进入系统")
break
else:
cishu += 1 #错误次数加一
cishujieguo=zuidacishu-cishu #剩余次数
print("认证失败,您还有%s次机会"%(cishujieguo))
else:
print("系统已被锁定")
exit(1)
if cishu == 3: #判断如果已经错误3次
f=open("suoding.log","w") #创建锁定日志
f.write("")
f.close()
print("系统锁定")
suoding=1
exit(1)
作业一只是单纯的判断变量的方式判断账号,仔细想想这种方法根本无法用在真实的环境下,真是环境下必然是通过账号文件和屏蔽名单来实现的。这也算是个教训吧,以后做作业的时候尽量考虑到真实环境,而不是单纯的为了作业而做。
作业一改版,去掉了锁定变量,改为使用文件读取的方式控制账号正确和锁定,把之前的修改全部改作注释进行对比。事先存在两个文件,zhanghao和suoding,用于保存账号和锁定名单,没有在脚本中体现出来。
zhanghao:
aaa:111
bbb:222 suoding
bbb
#作业一改版
#!/usr/bin/env python
#使用两个文件保存用户信息和登录次数,判断是否可以登录
# import os #加载模块
# name1 = "n" #正确的用户名
# pd1 = "qqqqq" #正确的密码
# if os.path.exists("suoding.log"): #判断锁定文件是否存在
# print("系统锁定")
# exit(1) #如果存在则退出
suoding=0 #锁定变量 0为非锁定,1为锁定
cishu = 0 #输入错误的次数
zuidacishu = 3 #错误次数上线
a=open("zhanghao").readline() #读取账号文件
b=open("suoding").readline() #读取锁定账号
name = input("请输入用户名:") #把账号放在前面,避免三次输入不同账号所造成的锁定问题
# if suoding==0:
for i in range(zuidacishu): #错误次数上线的循环
# suoding=0
# name = input("请输入用户名:")
pd = input("请输入密码:")
if "%s"%(name) in b: #判断账号是否在锁定名单,在则退出
print("账号被锁定")
exit(1)
else:
# if name == name1 and pd == pd1: #判断账号密码错误
if "%s:%s"%(name,pd) in a: #判断账号密码是否正确
print("认证成功,欢迎进入系统")
break
else:
cishu += 1 #错误次数加一
cishujieguo=zuidacishu-cishu #剩余次数
print("认证失败,您还有%s次机会"%(cishujieguo))
# else:
# print("系统已被锁定")
# exit(1)
if cishu == 3: #判断如果已经错误3次
if "%s"%(name) in b: #判断账号在是否在锁定名单,在则直接退出
print("系统锁定")
exit(1)
else:
f=open("suoding","a") #否则,讲账号加入到锁定名单中
f.write("%s\n"%(name))
f.close()
print("系统锁定")
# suoding=1
exit(1)
作业二
#作业二
#!/usr/bin/env python
msg='输入下列序号进入相应的省份\n1:北京\n2:上海\n3:四川'
bj='输入下列序号进入相应的省份\n1:海淀\n2:大兴\n3:通州'
sh='输入下列序号进入相应的省份\n1:外滩\n2:鸿口\n3:闵行'
sc='输入下列序号进入相应的省份\n1:重庆\n2:渝北\n3:巴南'
hd='输入下列序号进入相应的省份\n1:海淀1\n2:海淀2\n3:海淀3'
tz='输入下列序号进入相应的省份\n1:通州1\n2:通州2\n3:通州3'
wt='输入下列序号进入相应的省份\n1:外滩1\n2:外滩2\n3:外滩3'
mh='输入下列序号进入相应的省份\n1:闵行1\n2:闵行2\n3:闵行3'
hk='输入下列序号进入相应的省份\n1:鸿口1\n2:鸿口2\n3:鸿口3'
bn='输入下列序号进入相应的省份\n1:巴南1\n2:巴南2\n3:通巴南3'
cq='输入下列序号进入相应的省份\n1:重庆1\n2:重庆2\n3:重庆3'
yb='输入下列序号进入相应的省份\n1:渝北1\n2:渝北2\n3:渝北3'
dx='''
输入下列序号进入相应的省份
1:大兴1
2:大兴2
3:大兴3
'''
print(msg)
nb1=int(input("输入序号:"))
if nb1==1:
print(bj)
nb2=int(input("输入序号:"))
if nb2==1:
print(hd)
elif nb2==2:
print(dx)
elif nb2==3:
print(tz)
else:
print("输入错误")
elif nb1 == 2:
print(sh)
nb2=int(input("输入序号:"))
if nb2==1:
print(wt)
elif nb2==2:
print(hk)
elif nb2==3:
print(mh)
else:
print("输入错误")
elif nb1==3:
print(sc)
nb2=int(input("输入序号:"))
if nb2==1:
print(cq)
elif nb2==2:
print(yb)
elif nb2==3:
print(bn)
else:
print("输入错误")
else:
print("输入错误")
作业二使用的最简单的方式,比较繁琐,应该有更好的更简便的方法完成目标。作业二的解题思路还没有看,改进之后再进行更新。
初学者的python学习笔记1——作业篇的更多相关文章
- 初学者的python学习笔记2——作业篇
这次的作业是商城展示,最开始的确是一脸懵逼,后来研究了一下网上的例子,总算是搞出来了一个(其实算是网上列子的简化版?). 最开始是想要使用字典去做,发现显示列表的时候怎么也无法实现序号和名称对应,原因 ...
- Python学习笔记之基础篇(-)python介绍与安装
Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...
- 初学者的python学习笔记1
推荐一段时间闲的蛋疼,总觉得再堕落下去不太好,便捡起了之前一直想学而没有学的python,以此记录一下学习笔记,同时亦是督促和复习. 学习51cto上的<2016最新Python开发基础课程-2 ...
- 初学者的python学习笔记2
本来想是先把作业二搞定的,结果发现作业二用的字典,一脸懵逼,还是先搞定第二课吧.其实第二课和第一课内容差不多,据说是第一课的老师去美国了……不管怎么样先整理一下吧. ----------------- ...
- Python学习笔记【第一篇】:认识python和基础知识
我的笔记里的python代码运行环境都是在pycharm软件中运行,所以不去记录如何配置环境变量呀什么的. python种类 Cpython: Python的官方版本,使用C语言实现,使用最为广泛,C ...
- Python学习笔记【第九篇】:Python面向对象基础
Python语言中一切皆对象(类.属性.方法.........) 概念 面向对象编程:Object Oriented Programming 简称OOP 面向对象程序设计 面向对象和面向过程都是解决问 ...
- Python学习笔记(Django篇)——3、创建第一个数据库模型
Django里面集成了SQLite的数据库,对于初期研究来说,可以用这个学习. 第一步,创建数据库就涉及到建表等一系列的工作,在此之前,要先在cmd执行一个命令: python manage.py ...
- Python 学习笔记(基础篇)
背景:今年开始搞 Data science ,学了 python 小半年,但一直没时间整理整理.这篇文章很基础,就是根据廖雪峰的 python 教程 整理了一下基础知识,再加上自己的一些拓展,方便自己 ...
- Python学习笔记之基础篇(二)python入门
一.pycharm 的下载与安装: 使用教程:https://www.cnblogs.com/jin-xin/articles/9811379.html 破解的方法:http://xianchang. ...
随机推荐
- language model —— basic model 语言模型之基础模型
一.发展 起源:统计语言模型起源于 Ponte 和 Croft 在 1998年的 SIGIR上发表的论文 应用:语言模型的应用很多: corsslingual retrieval distribute ...
- 专为控制打印设计的CSS样式
大多数Web设计师对打印控制还不是很熟悉,他们往往更迷恋像素,而不是打印机.在现实世界中,很多人依赖从网站上打印网页来参考: 在这个数字时代, 在一些特殊的场合,很多人手中还会拿着纸张.Web开发人员 ...
- mybatis入门_配置文件的配置
一.全局配置文件配置 1.1 properties标签 Properties标签可以用来加载配置文件.例如,我们可以将数据库的连接信息放入到一个配置文件(db.properties中..) 下为db. ...
- mongoDB3.0 索引 整理
http://blog.csdn.net/louisliaoxh/article/details/51543552 相关mongo http://blog.csdn.net/LOUISLIAOXH/a ...
- git入门网站
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 git入门教程:对商业的.开源的. ...
- 浅谈HTTPS以及Fiddler抓取HTTPS协议
最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...
- Table 'performance_schema.session_variables' doesn't exist
出现标题所示错误时设置如下参数可以解决!set @@global.show_compatibility_56=ON;
- JS学习之事件流
本文是原创文章,如需转载,请注明文章出处 JS和AS师出同源,所以事件流的3个阶段也跟AS一样,分别是捕获阶段,目标阶段,冒泡阶段. 下面写了个例子可以清晰的看出事件流的顺序: eventTest.h ...
- Sprint1(第四天11.17)
Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http://www.cnblogs.com/qu ...
- [转]IE8兼容Object.keys
转自:http://blog.sina.com.cn/s/blog_6d63cf160102vbsg.html 只需要加入 var DONT_ENUM = "propertyIsEnumer ...