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人机交互小项目一:名字管理系统的更多相关文章

  1. 学习笔记之Python人机交互小项目二:名片管理系统

    继上次利用列表相关知识做了简单的人机交互的小项目名字管理系统后,当学习到字典时,老师又让我们结合列表和字典的知识,结合一起做一个名片管理系统,这里分享给在学习Python的伙伴! 1.不使用函数 1 ...

  2. Java学习笔记三十:Java小项目之租车系统

    Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...

  3. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  4. 【学习笔记】Python 3.6模拟输入并爬取百度前10页密切相关链接

    [学习笔记]Python 3.6模拟输入并爬取百度前10页密切相关链接 问题描述 通过模拟网页,实现百度搜索关键词,然后获得网页中链接的文本,与准备的文本进行比较,如果有相似之处则代表相关链接. me ...

  5. Noah的学习笔记之Python篇:命令行解析

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  6. Noah的学习笔记之Python篇:函数“可变长参数”

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  7. Noah的学习笔记之Python篇:装饰器

    Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) ...

  8. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...

  9. 学习笔记之Python 3

    学习笔记之Python 3 教程 https://www.cnblogs.com/pegasus923/p/7624416.html 学习笔记之X分钟速成Python3 https://www.cnb ...

随机推荐

  1. 第十一章 Python 支撑正则表达式处理的re模块

    re模块是Python中支持正则表达式处理的模块,老猿学了之后,发现这部分内容太多,要表述清楚需要开单章才能写清楚,但老猿觉得re模块的使用对多数人来说要通过教程学习去熟练掌握很难,需要经常接触练习加 ...

  2. PyQt学习遇到的问题:重写notify发送的消息为什么首先给了一个QWindow对象?

    在PyQt开发图形界面应用时,从QApplication派生的子类重写notify方法后(具体请参考<PyQt学习随笔:通过自定义类重写QApplication的notify方法捕获应用的所有消 ...

  3. Intellij IDEA新导入项目运行出现Error:(60, 47) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)

    后台窗口报错如下: 问题原因 项目jdk版本配置不正确. 解决方案 ①File ->Project Structure ② ③之后还要检查一下这里 Settings-->Build,Exe ...

  4. clion2020最新安装破解版教程 内含激活码、破解补丁、无限重置时间插件

    clion是一款开发C.C++等相关程序的利器,到目前为止已经更新到2020.3版本啦!还没有升级的小伙伴们赶紧升级啦,本文教大家如何安装clion2020.3版本并且破解,此方法亲测100%可以永久 ...

  5. Codeforces Edu Round 49 A-E

    A. Palindromic Twist 由于必须改变.所以要使\(a[i] = a[n - i + 1]\). 要么同向走,但必须满足之前的\(a[i] = a[n - i + 1]\). 要么相遇 ...

  6. 精尽Spring MVC源码分析 - 调式环境搭建

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  7. docker redis 设置和使用

    1 开启docker 拉取redis镜像 1.1 桌面版docker   在镜像所在位置命令行执行 docker load -i redis.tar 1.2 开启redis docker run -p ...

  8. SpringBoot + Mybatis-Plus 实现多数据源简单示例

    1. 简介   在单体项目中,经常出现想要访问多个数据源的情况,或者因为某些性能瓶颈,将大数据量的业务表分离到另一个库等情况.   实现多数据源的方案有很多,Mybatis-Plus提供了非常简单的实 ...

  9. monkey在指定的activity里面运行

    下载包地址:链接: https://pan.baidu.com/s/1Wk2eOj3saZx71Mx6pT2L4Q 提取码: gupa 运行方式:步骤1: 将工具下载下来放到本地目录下,解压步骤2:配 ...

  10. feign代码自动生成插件

    简介 feign对微服务之间的http调用做了一层封装,如果B项目想调用A项目的一个web服务,只需要编写对应的接口并标注FeignClient注解.但如果接口发生了变更,对应的Feign代码往往会忘 ...