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. 第二十五章、containers容器类部件GroupBox分组框详解

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  2. PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法大全及对比分析

    一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果, ...

  3. PyQt(Python+Qt)学习随笔:Qt Designer中QAbstractButton派生按钮部件的checkable和checked属性

    checkable属性 checkable属性确认按钮是否可以被选中,缺省情况下该值为False,即按钮是不能被选中的. 可选择的按钮按下之后,按钮不会自动弹起来,此时按钮为选中状态,当再次点击按钮时 ...

  4. 对巡风vulscan的理解

    # coding:utf-8 # 漏洞检测引擎 import urllib2 import thread import time import pymongo import sys import da ...

  5. 使用 typescript 快速开发一个 cli

    cli 的全称 command-line interface(命令行界面),也就是前端同学常用的脚手架,比如 yo.vue cli.react cli 等. cli 可以方便我们快速创建项目,下图是引 ...

  6. js 转为整数之Number()、parseInt()、parseFloat()区别

    一:Number() 如果是Boolean值,true和false值将分别被转换为1和0. 如果是数字值,只是简单的传入和返回. 如果是null值,返回0. 如果是undefined,返回NaN. 如 ...

  7. NOI Online #2 提高组 游记

    没 NOI Online 1 挂的惨就来写游记吧,不知道为啥 NOI Online 1 民间数据测得 60 分的 T1 最后爆零了... 昏昏沉沉的醒来,吃了早饭,等到 \(8:30\) 进入比赛网页 ...

  8. typora软件使用指南

    Markdown学习 标题: 三级标题 四级标题 字体 hello,world! hello,world! hello,world! hello,world! 引用 选择狂神说java,走向人生巅峰 ...

  9. react第十二单元(react路由-使用react-router-dom-认识相关的组件以及组件属性)

    第十二单元(react路由-使用react-router-dom-认识相关的组件以及组件属性) #课程目标 理解路由的原理及应运 理解react-router-dom以及内置的一些组件 合理应用内置组 ...

  10. luabind 使用

    LuaBind --最强大的Lua C++ Bind 转载:http://www.cppblog.com/deane/articles/49208.html1 介绍LuaBind 是一个帮助你绑定C+ ...