零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~

Python作业第一课
1)登陆,三次输入锁定,下次不允许登陆
2)设计一个三级菜单,菜单内容可自行定义,任意一级输入q则退出程序,如果输入b则返回上一级

--以上两个题目涉及几个知识点:文档的读取,文档的写入,列表的操作,循环的使用,字符串的一些操作
首先回顾一下这几个知识点
a)文档的读取,几个常用的
f = open("test.log","w")
这个w是参数,可换成别的参数
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
b)关闭文件
f.close()
c)文件内容操作
f.read()一次性读取全部所有内容,可调整为f.read([size]),读取size个字节的内容
f.readline()读一行数据
f.readlines()一次性读取所有内容按行返回
f.truncate(n)从文件开头截取n个字符,超出的删除
f.seek(n)跳到指定位置n,f.seek(0)是返回文件开始
e.g.
h = open("menu2.log","r")
for line in h.readlines():
if "2" in line:
print(line)
h.close()
f.write(str)写文件
e.g. 是全新创建了一个文件,之前的内容会被清空
h = open("menu2.log","w")
h.write("this is the test line")
h.close()
e.g. 在之前的文件后面追加
h = open("menu2.log","a")
h.write("this is the add line")
h.close()
d)列表的操作(list)
name_list = ["a","b","c","d"]
******************************这里穿插一点东西
我们可以通过dir(name_list)查找可执行的命令[注意前后带_线的没什么用,不需要看]
type(name_list)可返回这个变量的类型
************************************************************
切片:(从0开始,负数是从右边开始,-1是最右边的值)
name_list[1] > b
name_list[-1] > d
name_list[0:2] > a,b 0:2是指的是01两个值并不包括2
name_list[0:3:2] > a,c 0:3:2前面是取abc后面那个2则是指隔2个再切
name_list.append("e") > a,b,c,d,e 向列表最后面增加一个元素
name_list.pop() 删除列表最后的一个元素
name_list.remove("c") 删除叫c的元素
name_list[1] = "ff" 将第二个元素改为ff
name_list.insert(1,"test") 插入一下新元素,索引为1
name_list.count("ff") ff的个数
list2 = ["ee","gg"]
name_list.extend(list2) 把list2合并到name_list
name_list.sort() 将列表排序
e)元组的操作(tuple)
元组跟列表很类似,不同的是一旦初始化后就不能再调整,没有append,insert这样的方法,切片什么的是一样取
f)字符串的格式化操作
name = input("name: ").strip() 输入名字并去除左右的空
print(name) 输出名字
print(name, + "-" + name )
print("Name:%s:\nAge:%s\nJob:%s" %(name,age,job))
g)循环
for i in range(3): 从0-2

while a ==0:
while true: -- 无限循环

break 跳出循环
continue 继续
h)条件判断
if a==0:
elif a==1:
else:

基本的知识点就是这些了,现在进入正题了

1)登陆,三次输入锁定,下次不允许登陆
首先准备了两个文件,一个是用户及密码的,一个是存放写入被锁的用户的,名字分别为:user.log和lockuser.log
user.log中的内容是我事先自己编好放进去的,如下
autumn,autumn123
summer,summer123
angle,angle123
tiffany,tiffany123
fay,fay123
lockuser.log最开始是空的
如果输入用户名正确,密码输入三次错误则写入到lockuser.log,下次再用此用户登陆则会提示该用户被锁

代码如下:

input_name = input("The name is: ").strip()
f = open("lockuser.log","r")
count = 0 #标识帐户是否被锁定
count1 = 0 #标识是否输对帐户 #查看文件,看输入的账户是否被锁定,锁定则退出程序
for line in f.readlines():
if line.strip() == input_name:
print("The account has locked!")
count = 1
break
f.close() #帐户未被锁定的情况
if count == 0:
f1 = open("user.log","r")
for line in f1.readlines():
lineword = line.split(',',2)
if lineword[0] == input_name:
count1 = 1
#帐户输入正确,进入三次输入密码的机会进行输入
for i in range(3):
input_password = input("The password is: ").strip()
if input_password == lineword[1].strip():
print("Welcome to here, have a good nice trip!")
break
if i == 2:
f2 = open("lockuser.log","a")
f2.write("\n")
f2.write(lineword[0])
f2.close()
print("Three times,the account has locked!")
if count1 == 0:
print("The user account is not exits!")
2)设计一个三级菜单,菜单内容可自行定义,任意一级输入q则退出程序,如果输入b则返回上一级

首先一级菜单我是用常量写SHI在代码里的,二级菜单和三级菜单分别放在了两个文件中,名字分别为:menu2.log和menu3.log,当然其实一级菜单也可以写到文件里,去读文件来实现
这段代码的重点其实是在几层循环里都代入了一个记数的变量来跳出最外层的循环(输入q时)

所有输入正常的时候程序最后会输出你选择过的三个选项如:北京-朝阳-三里屯街道
代码如下:

count1 = 0
count2 = 0
count3 = 0
input_name1 = ""
input_name2 = ""
input_name3 = ""
value1 = ""
value2 = ""
value3 = ""
print("Choose the favorite place!") while count1 == 0:
#选择第一级的菜单
print("**************************************************")
print("1 北京 ")
print("2 上海 ")
print("3 广州 ")
print("4 深圳 ")
print("**************************************************")
input_name = input("Please chose the fire level: ").strip()
if input_name == "":
value1 = "北京"
elif input_name == "":
value1 = "上海"
elif input_name == "":
value1 = "广州"
elif input_name == "":
value1 = "深圳"
#根据第一级菜单的选择项读取文件展示第二级菜单,存在则展示二级菜单,提示选择二级菜单
if input_name in ('','','',''):
f = open("menu2.log","r",encoding= 'utf-8')
for line in f.readlines():
if input_name in line:
lineword = line.split(',',4)
for i in range(len(lineword)):
if i > 0 :
print(str(i) + " " + lineword[i])
f.close()
print("**************************************************")
#print(value1)
input_name2 = input("Please chose the second level:").strip()
input_name1 = input_name + input_name2
#如果输入b则返回上一级菜单
elif input_name == "b":
continue
#如果畭q则退出整个程序
elif input_name == "q":
print("See you next time!")
break
#输入其它字符也退出同时提示无效的输入
else:
print("Valid input! Please try again !")
continue
while count2 == 0:
#根据第一二级菜单展示第三级菜单
#如果输入的菜单在有效范围内去读取第三级的菜单
if input_name2 in ('','',''):
value2 = lineword[int(input_name2)]
#print(value2)
g = open("menu3.log","r",encoding="utf-8")
for line in g.readlines():
if input_name1 in line:
lineword = line.split(',',4)
for i in range(len(lineword)):
if i > 0:
print(str(i) + " " + lineword[i])
g.close()
print("**************************************************")
input_name3 = input("Please chose the third level:").strip()
#如果输入b退出此次循环,返回上一级菜单
elif input_name2 == "b":
break
#如果输入q则退出整个循环
elif input_name2 == "q":
count1 = 1
print("See you next time!")
break
#输入其它字符也退出同时提示无效的输入
else:
print("Valid input! Please try again!")
break
#第三次輸入的判斷
while count3 == 0:
if input_name3 == "q":
count1 = 1
count2 = 1
print("See you next time!")
break
elif input_name3 == "b":
break
elif input_name3 in ('','',''):
value3 = lineword[int(input_name3)]
print("Your favorite place is :" + value1 + "-" + value2 + "-" + value3 )
count1 = 1
count2 = 1
break
else:
print("Valid input! Please try again!")
break

流程图没有画,下次我会画一下流程图,大概就是这么多东西,明天接着继续学习,加涅个油啊!!!

Python作业第一课的更多相关文章

  1. python学习第一课

    第一课: 1.不要使用来路不明的软件 2.下载杀毒软件 3.不懂技术的人在技术人面前会显得愈发无知 4.python无所不能 需要掌握的知识: 1.python基本语法 2.文件处理 3.函数 4.模 ...

  2. python学习第一课要点记录

    写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考.感觉这样学不好,除了多写 ...

  3. 初学Python(第一课)

    今天整理一下关于Python初学者的基础知识部分的第一课,因为之前学习过C,所以过于基础的知识就不详细记录了. Python相对于C\C++来说,在语法方面已经很简单了:甚至对于JavaScript也 ...

  4. 学习Python的第一课(简单的单元测试)

    由于有C#开发基础,感觉学习Python应该不难,主要是一些语法了,再加上现在互联网这么发达. 感觉还是要有思路,否则学什么也只能是什么. 话不多说,简单发下这几天的学习成果吧: 第一次写博客,大家不 ...

  5. Python【第一课】 Python简介和基础

    本节内容 Python安装(windows) 第一个程序(windows中的python) 变量 字符编码 注释 用户输入 模块初步认识 数据类型 数据运算 表达式if...else 表达式for l ...

  6. Python基础第一课

    Python基础 安装软件并配置环境变量 1.第一句python --初学后缀名可以是任何数 --后期学习需要导入模块时不是py后缀名会报错 2.两种执行方式 Python解释器 py文件路径 Pyt ...

  7. python 学习 第一课

    # -*- coding: utf-8 -*- import urllib2 import cookielib url="http://www.baidu.com" print ' ...

  8. 老男孩python作业6-选课系统开发

    角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. 课程包含,周期,价格 ...

  9. Python入门第一课——Python的起源、发展与前景!

    我们在做任何一件事情之前,我们都会通过各种渠道去搜集事情的信息,了解事情的来龙去脉,学习一门编程语言也是如此,只有知根知底,我们才能有明确的方向和目标,以及底气去完成这件事情,今天我带大家来看看Pyt ...

随机推荐

  1. 高可用Hadoop平台-Oozie工作流

    1.概述 在开发Hadoop的相关应用使用,在业务不复杂,任务不多的情况下,我们可以直接使用Crontab去完成相关应用的调度.今天给大家介绍的是统一管理各种调度任务的系统,下面为今天分享的内容目录: ...

  2. Linux命令yum和rpm

    yum命令使用 可以简化软件安装命令 yum可以做软件的 1自动安装,安装软件的时候会自动安装需要的依赖 yum install 软件名如安装epel源yum install epel-release ...

  3. git第七节---git merge和git rebase

    # git merge和git rebase 都可以进行分支合并 #git merge 合并后保留记录两个分支的记录 #git rebase合并后会展示成一个分支的记录,另一个分支的提交实际生成了一个 ...

  4. 搭建前端监控系统(二)JS错误监控篇

    ===================================================================== 前端性能监控系统: DEMO地址    GIT代码仓库地址 ...

  5. [NOI 2017]游戏

    Description 题库链接 小 L 计划进行 \(n\) 场游戏,每场游戏使用一张地图,小 L 会选择一辆车在该地图上完成游戏. 小 L 的赛车有三辆,分别用大写字母 A.B.C 表示.地图一共 ...

  6. [转]ionic3项目实战教程三(创建provider、http请求、图文列表、滑动列表)

    本文转自:https://blog.csdn.net/lyt_angularjs/article/details/81145468 版权声明:本文为博主原创文章,转载请注明出处.谢谢! https:/ ...

  7. Task.Run Vs Task.Factory.StartNew 【收藏】

    在.Net 4中,Task.Factory.StartNew是启动一个新Task的首选方法.它有很多重载方法,使它在具体使用当中可以非常灵活,通过设置可选参数,可以传递任意状态,取消任务继续执行,甚至 ...

  8. 数据库的DevOps实践

    ---------------------------------------------------------------------------------------------------- ...

  9. UML速记

    依赖:虚线箭头 关联:实线箭头 接口:虚线三角 父类:实线三角 聚合:空心菱形 组合:实心菱形 顺着箭头方向: 依赖于和什么关联是什么的子类是什么的接口的实现是什么的聚合是什么的组合

  10. Oracle索引失效原因及解决方法

    一.Oracle索引失效的原因 1使用否定关键字 !=, <> ,not in,not exist select * fromdrama where id <> 1,Mysql ...