Python作业第一课
零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~
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作业第一课的更多相关文章
- python学习第一课
第一课: 1.不要使用来路不明的软件 2.下载杀毒软件 3.不懂技术的人在技术人面前会显得愈发无知 4.python无所不能 需要掌握的知识: 1.python基本语法 2.文件处理 3.函数 4.模 ...
- python学习第一课要点记录
写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考.感觉这样学不好,除了多写 ...
- 初学Python(第一课)
今天整理一下关于Python初学者的基础知识部分的第一课,因为之前学习过C,所以过于基础的知识就不详细记录了. Python相对于C\C++来说,在语法方面已经很简单了:甚至对于JavaScript也 ...
- 学习Python的第一课(简单的单元测试)
由于有C#开发基础,感觉学习Python应该不难,主要是一些语法了,再加上现在互联网这么发达. 感觉还是要有思路,否则学什么也只能是什么. 话不多说,简单发下这几天的学习成果吧: 第一次写博客,大家不 ...
- Python【第一课】 Python简介和基础
本节内容 Python安装(windows) 第一个程序(windows中的python) 变量 字符编码 注释 用户输入 模块初步认识 数据类型 数据运算 表达式if...else 表达式for l ...
- Python基础第一课
Python基础 安装软件并配置环境变量 1.第一句python --初学后缀名可以是任何数 --后期学习需要导入模块时不是py后缀名会报错 2.两种执行方式 Python解释器 py文件路径 Pyt ...
- python 学习 第一课
# -*- coding: utf-8 -*- import urllib2 import cookielib url="http://www.baidu.com" print ' ...
- 老男孩python作业6-选课系统开发
角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. 课程包含,周期,价格 ...
- Python入门第一课——Python的起源、发展与前景!
我们在做任何一件事情之前,我们都会通过各种渠道去搜集事情的信息,了解事情的来龙去脉,学习一门编程语言也是如此,只有知根知底,我们才能有明确的方向和目标,以及底气去完成这件事情,今天我带大家来看看Pyt ...
随机推荐
- 讲解ontouchstart、ontouchend、onclick区别和坑点
今天要讲的这个并不复杂,我用一个例子来讲解吧 <div id="box"></div> var box = document.querySelector(& ...
- linux下xdebug的安装和配置方法
xdebug简介 Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况. xdebug安装 首先让php错误显示,只需要修改php.in ...
- Spark RDD转换为DataFrame
#构造case class,利用反射机制隐式转换 scala> import spark.implicits._ scala> val rdd= sc.textFile("inp ...
- JavaWeb学习 (十二)————使用Session防止表单重复提交
在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...
- FFmpeg编解码处理4-音频编码
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10584948.html FFmpeg编解码处理系列笔记: [0]. FFmpeg时间戳详 ...
- BGP笔记
BGP:用于AS与AS之间的路由,但现在也越来越多的用在IDC内部了 BGP是应用层协议,应用TCP协议(唯一一个运用TCP的路由协议) IGP和EGP的区别:IGP运行在一个AS之内,EGP运行在A ...
- Shell 实例:备份最后一天内所有修改过的文件
在一个"tarball"中(经过 tar 和 gzip 处理过的文件)备份最后 24 小时之内当前目录下所有修改的文件. 程序代码如下: #!/bin/bash BACKUPFIL ...
- 部署DTCMS到Jexus遇到的问题及解决思路--验证码
上一篇博客我们已经基本完成了部署工作,目前发现了验证码出现500错误,分析其代码,我们可以看到验证码使用的是System.Drawing命名空间下的类库, GDI+ 位图,这个在肯定是平台相关的,所以 ...
- 玩转物联网之MQTT
物联网概述 物联网——即Internet-of-Things,其实这个概念由来已久,简单来讲,物联网是物与物.人与物之间的信息传递与控制简称.它和能源.电子信息.医疗.交通.零售.物流.工业制造等行业 ...
- Jetbrains软件永久破解
说明:该破解到期时间为2099年,基本为永久破解! 1.点击右侧链接下载脚本JetbrainsCrack-3.1-release-enc.jar [JetbrainsCrack-release-enc ...