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. 【JAVA】SSM开源项目源码--城市学院移动后勤-毕业设计(Spring SpringMvc Mybatis Mui Redis )

    项目简介 大学时期老师给我做的项目,学校后勤管理中心,也作为毕业设计项目. 有 后勤保修 二手交易 失物招领 后勤通知 等功能. 城市学院移动后勤 有APP端(webapp)和WEB端(PC) 后端使 ...

  2. Docker下Python Flask+Redis+MySQL+RQ队列简单配置

    本篇博文主要讲解Docker下使用RQ队列的通信配置,主要是网上的部分文章写的不太清楚,特写一篇 作者使用docker-compose.yml文件调度各部分文件Dockerfile,起初是这样写的 v ...

  3. (数据科学学习手札99)掌握pandas中的时序数据分组运算

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在使用pandas分析处理时间序列数据 ...

  4. vue functional函数式组件

    第1种写法 test.vue <template functional> <div class="test"> {{props.test.name}} &l ...

  5. Java并发编程的艺术(一)——并发编程的注意问题

    并发编程是为了使程序运行得更快,但是,不是启动更多得线程就能最大限度地执行并发,也不是线程更多就能使得程序运行得更快,而且并发编程更容易产生错误,如果要高效且正确地执行并发,就需要注意这三种问题 上下 ...

  6. Spring Boot 最简单的解决跨域问题

    跨域问题(CORS) CORS全称Cross-Origin Resource Sharing,意为跨域资源共享.当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求.如果此时另一 ...

  7. VMware & centos 7 配置克隆虚拟机

    VMware & centos 7 配置克隆虚拟机 之前一直使用的是centos6,买了新电脑试了一下centos7,安装过程果然采坑不少,下面是我成功安装的过程 克隆虚拟机 安装虚拟机,安装 ...

  8. Mybatis(二)--SqlMapConfig.xml配置文件

    一.简介 SqlMapConfig.xml是Mybatis的全局配置文件,我们在写mybatis项目时,在SqlMapConfig.xml文件中主要配置了数据库数据源.事务.映射文件等,其实还有很多配 ...

  9. 卷积涨点论文 | Asymmetric Convolution ACNet | ICCV | 2019

    文章原创来自作者的微信公众号:[机器学习炼丹术].交流群氛围超好,我希望可以建议一个:当一个人遇到问题的时候,有这样一个平台可以快速讨论并解答,目前已经1群已经满员啦,2群欢迎你的到来哦.加入群唯一的 ...

  10. 关于python面试中的设计模式,搞懂这些就足够了

    1.什么是设计模式? 设计模式是经过总结.优化,对我们经常遇到的一些编程问题的可重用的解决方案.设计模式不同于类或库可直接作用于代码.相反,它更为的高级,是一种必须在特定的情形下实现的方法模版. 2. ...