初学者的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. ...
随机推荐
- 关于composer安装插件时候提示找不到fxp插件时候的解决办法
如果你在某个目录使用composer.phar,而且在别的目录页使用了composer,并没有全局安装composer的时候,不同目录之间的可能会互相干扰从而报错 root@tyr:/var/www/ ...
- 安装centos时候自动安装vm tool,导致无法继续安装centos的解决办法
我原先安装centos 的时候装的是CD版的,也是到这一步就卡住了,然后我在"虚拟机->取消安装vmare tool" 点击“取消安装vmare tool”,然后他就可以进行 ...
- 【学习笔记】在原生javascript中使用ActiveX和插件
什么是插件 现在的浏览器提供了大量的内置功能,但仍然有一些工作无法完成,如播放音频和视频.插件及其扩展浏览器功能就尤为重要. 插件是可下载的应用程序,可以插入到浏览器中,现在有很多不同的插件,常用的有 ...
- JQuery 绑定select标签的onchange事件,弹出选择的值,并实现跳转、传参
<script src="jquery.min.js" type="text/javascript"></script> <scr ...
- adb push命令的使用
最近刚接触一种工具(命令),什么命令呢?就是adb命令,对这个命令纯属一个小白鼠,什么都不懂,所以只能adb --help 一下参数,然后就尝试着使用. 今天遇到一个问题,需要将某个文件拷到小机上面, ...
- android APK更新
菜鸟的博客请多多指教 最近做了一个新功能,更新APK的功能 1.更新APK是一个耗时的任务,我采用了一个服务来做,上次在网上看到服务是在主线程里面,自己也测试了下,数据是真的 所以下载动作还必须在服务 ...
- ie8兼容性(不支持trim 、readonly光标、乱码encodeURI())
IE8下String的Trim()方法失效的解决方案 1.用jquery的trim()方法,$.trim(str)就可以了. 2.String扩展: 第一种 String.prototype.trim ...
- 19个必须知道的Visual Studio快捷键(转)
本文将为大家列出在 Visual Studio 中常用的快捷键,正确熟练地使用快捷键,将大大提高你的编程工作效率. 项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Al ...
- java selenium (九) 常见web UI 元素操作 及API使用
本篇介绍我们如何利用selenium 来操作各种页面元素 阅读目录 链接(link) <div> <p>链接 link</p> <a href=" ...
- [转载]什么是FCKeditor?功能强大的HTML编辑器!
天天在用FCKeditor写博客,但一直不清楚FCKeditor到底是什么,今天终于找到了一些相关的资料,大家一起来分享下. FCKeditor文本编辑程序(共享软件)为用户提供在线的文档编辑服务,其 ...