学习笔记之Python人机交互小项目一:名字管理系统
2020是一个不平凡的一年,但即使挫折不断,我们每学期的课程实训也没有受到影响,仍旧如期实施。与往年不同的是,今年的实训老师是学校邀请的公司在职人员来给我们实训。今年实训的内容是Python语言,下面就是实训老师在讲授中让我们练习的一个人机交互的小项目,名字管理系统,这里主要是用到了列表,我写了两个版本,一个没有用到函数,另一个使用了函数。这些都非常适合刚开始学习Python的各位练手哦!
1、不使用函数:这种比较简单,但也存在缺陷,代码繁琐且没有用文件保存增加名字的信息,以至于每次运行,上次添加的名字都没有了(当然也可以添加哦,下面使用函数的版本解决了这些问题)
`print(""30)
print("\t名字管理系统")
print("1.增加一个姓名")
print("2.删除一个姓名")
print("3.修改一个姓名")
print("4.查找一个姓名")
print("5.显示所有信息")
print("6.退出系统")
print(""*30)
names=[]
while 1:
#2.获取用户的选择
num=(input("请输入你的选择:"))
#3.根据用户的选择,执行相应的功能
if num'1':
add_name=input("请输入你要增加的姓名:")
names.append(add_name)
elif num'2':
del_name=input("请输入你要删除的姓名:")
if del_name not in names:
print("查无此人!")
else:
names.remove(del_name)
print("名字删除成功!")
elif num'3':
change_name=input("请输入你要修改的姓名:")
if change_name not in names:
print("查无此人!")
else:
for x in range(len(names)):
if names[x]change_name:
new_name=input("请输入修改后的姓名:")
names[x]=new_name
break
elif num'4':
find_name=input("请输入你要查找的名字:")
if find_name in names:
print("系统中有这个名字哦!")
else:
print("查无此人!")
elif num'5':
print("系统内所有的名字有:%s"%names)
elif num=='6':
break
else:
print("输入格式错误,请重新输入!")2、使用函数:比较完美的一个小型的名字管理系统def w(count):
f=open("1.txt","w")
f.write(count)
f.close()
def r():
f=open("1.txt","r")
s=f.read()
f.close()
return s
def interface():
print(""30)
print("\t名字管理系统")
print("1.增加一个姓名")
print("2.删除一个姓名")
print("3.修改一个姓名")
print("4.查找一个姓名")
print("5.显示所有信息")
print("6.退出系统")
print(""*30)
if r=='':
names=[]
else:
names=eval(r())
def add_name():
add_name=input("请输入你要增加的姓名:")
names.append(add_name)
def del_name():
del_name=input("请输入你要删除的姓名:")
if del_name not in names:
print("查无此人!")
else:
names.remove(del_name)
print("名字删除成功!")
def change_name():
change_name=input("请输入你要修改的姓名:")
if change_name not in names:
print("查无此人!")
else:
for x in range(len(names)):
if names[x]==change_name:
new_name=input("请输入修改后的姓名:")
names[x]=new_name
break
def find_name():
find_name=input("请输入你要查找的名字:")
if find_name in names:
print("系统中有这个名字哦!")
else:
print("查无此人!")
def display_name():
print("系统内所有的名字有:%s"%names)
def main():
interface()
while True:
num=input("请输入你的选择:")
if num == "1":
add_name()
elif num == "2":
del_name()
elif num == "3":
change_name()
elif num == "4":
find_name()
elif num == "5":
display_name()
elif num == "6":
break
else:
print("输入格式错误,请重新输入!")
main()
`
学习笔记之Python人机交互小项目一:名字管理系统的更多相关文章
- 学习笔记之Python人机交互小项目二:名片管理系统
继上次利用列表相关知识做了简单的人机交互的小项目名字管理系统后,当学习到字典时,老师又让我们结合列表和字典的知识,结合一起做一个名片管理系统,这里分享给在学习Python的伙伴! 1.不使用函数 1 ...
- Java学习笔记三十:Java小项目之租车系统
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...
- 【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接
[学习笔记]Python 3.6模拟输入并爬取百度前10页密切相关链接 问题描述 通过模拟网页,实现百度搜索关键词,然后获得网页中链接的文本,与准备的文本进行比较,如果有相似之处则代表相关链接. me ...
- Noah的学习笔记之Python篇:命令行解析
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- Noah的学习笔记之Python篇:函数“可变长参数”
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- Noah的学习笔记之Python篇:装饰器
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...
- python3.4学习笔记(九) Python GUI桌面应用开发工具选择
python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...
- 学习笔记之Python 3
学习笔记之Python 3 教程 https://www.cnblogs.com/pegasus923/p/7624416.html 学习笔记之X分钟速成Python3 https://www.cnb ...
随机推荐
- python基本案例实现
案例一:test.txt文件中与输入的用户进行认证,超过3次用户被锁定,且把用户加入锁定的lock.txt文件中. # 需求点: # 1.输入用户名.密码 # 2.认证成功后显示欢迎信息 # 3.输错 ...
- P5857 「SWTR-03」Matrix
原本自己有一个思路的,推了半天不太确定看了下题解,发现到后面完全不知道他代码在写些什么(我太弱了),所以打算自己理一下. 题解 首先我们可以肯定的一点就是,我们可以发现,一个矩阵的形态只和他横着和竖着 ...
- 图论-zkw费用流
图论-zkw费用流 模板 这是一个求最小费用最大流的算法,因为发明者是神仙zkw,所以叫zkw费用流(就是zkw线段树那个zkw).有些时候比EK快,有些时候慢一些,没有比普通费用流算法更难,所以学z ...
- 我对js数据类型的理解和深浅(copy)的应用场景
本人毕业一所专科院校,所学专业是计算机应用技术,在大学时对前端有了一定的了解之后,觉得自己对前端的兴趣十分强烈,开始自学前端,一路上也是坎坎坷坷,也有想要放弃的时候,还好坚持了下来,并且从事前端开发已 ...
- SpringBoot添加多数据源mysql和oracle
项目结构 多数据源配置文件 MultiDataSourceConfig.java SqlSessionTemplate1.java SqlSessionTemplate2.java package c ...
- Mycat配置分库分表(垂直分库、水平分表)、全局序列
1. Mycat相关文章 Linux安装Mycat1.6.7.4并实现Mysql数据库读写分离简单配置 Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从) Docke ...
- gnuplot添加直线和箭头
http://blog.csdn.net/bill_chuang/article/details/18215051 6.在图中添加直线和箭头 gnuplot> set arrow from 0. ...
- HBase删除数据
hbase官方文档中描述了,hbase删除数据可以总结为下面三种(Java API有很多接口,可以总结下面的几种): 删除一个列的指定版本 删除一个列的所用版本 删除指定列族的所有列 hbase删除数 ...
- Java后端使用socketio,实现小程序答题pk功能
在使用socket.io跟前端通信过程中,出现了一系列问题,现做下记录. 一.功能需求是,在小程序端,用户可相互邀请,进入房间后进行答题PK.实现方法是,用户点击邀请好友,建立连接,查询当前是否有房间 ...
- WIN7环境下配置vscode c++环境
目录 安装vscode 添加中文环境支持 添加c++支持 配置c++环境 安装MinGW 配置MinGW环境变量 配置vscode launch文件配置 task文件配置 可能出现的问题 安装vsco ...