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. Oracle命令管理账户和权限

    方式一.登陆数据库SQL PLUS: 步骤:Oracle - OraDb10g_home1 =>应用程序开发=>SQL PLUS 用户名:system 密码:tiger/admin 退出数 ...

  2. 【软件测试部署基础】npm的认识

    1. npm简介 先来看下官方介绍: npm makes it easy for JavaScript developers to share and reuse code, and it makes ...

  3. IAR FOR STM8 同一个工程芯片选择003F3可以编译003K3提示空间不足

    同一个工程文件,选择103F3可以编译通过,但是选择103K3便提示空间不足 百思不得其解,查阅大量资料无果.最后在IAR工程里面找到了配置文件 打开003f3的配置文件和003K3配置文件进行对比, ...

  4. 微信小程序中使用text-indent实现首行缩进

    问题由来:在小程序中使用text标签包裹了一段话,要做一个首行缩进的效果,但是不起效果 . 解决方法:使用view标签代替text,使用text-indent:2em即可解决.

  5. FHQ简要笔记

    前言 原文写于 XJ 集训day2 2020.1.19. 现在想想那时候连模板都还没写,只是刚刚理解就在那里瞎yy--之前果然还是太幼稚了. 今天刷训练指南发现全是 Treap 和 Splay ,不想 ...

  6. MySQL技术内幕InnoDB存储引擎(二)——InnoDB存储引擎

    1.概述 是一个高性能.高可用.高扩展的存储引擎. 2.InnoDB体系架构 InnoDB存储引擎主要由内存池和后台线程构成. 其中,内存池由许多个内存块组成,作用如下: 维护所有进程和线程需要访问的 ...

  7. 三、git学习之——管理修改、撤销修改、删除文件

    一.管理修改 现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行, ...

  8. python的数据缓存

    Python的数据缓存 python 的内置数据类型,数值型,字符串,列表,字典等都会有自己的对象缓存池, 这样做的好处是,避免了频繁的申请内存,释放内存,这样会极大的降低应用程序的运行速度,还会造成 ...

  9. 最短路径——BFS算法

    最短路径--BFS算法 单源最短路径问题 每对顶点间的最短路径 BFS求无权图的单源最短路径 bool visited[MAX_VERTEX_NUM]; //访问标记数组 //广度优先遍历 void ...

  10. Sentinel Dashboard(基于1.8.1)流控规则持久化到Nacos——涉及部分Sentinel Dashboard源码改造

    前言 之前虽然也一直在使用sentinel实现限流熔断功能,但却没有好好整理之前看的源码与资料,今天有时间将之前自己整理过的资料写成一篇博文,或者是是一篇关于Sentinel(基于目前最近版本1.8, ...