Python问题求助--如何将循环程序中每次输入的数据循环使用,即退出当前循环程序后,再次运行该循环程序时可以使用原先输入的数据信息?

 1 card_list = []
 2
 3
 4 def main_desk():
 5     print(‘*‘*50)
 6     print(‘欢迎使用【名片管理系统】V1.0‘)
 7     print(‘1.新建名片‘)
 8     print(‘2.显示全部‘)
 9     print(‘3.查询名片‘)
10     print(‘0.退出系统‘)
11     print(‘*‘*50)
12
13
14 def new_card():
15     print(‘新建名片‘)
16     print(‘=‘*50)
17     name_str = input(‘姓名:‘)
18     age_str = input(‘年龄:‘)
19     phone_str = input(‘电话:‘)
20     card_dict = {‘name‘: name_str, ‘age‘: age_str, ‘phone‘: phone_str}
21     card_list.append(card_dict)
22     print(card_dict)
23     print(f‘添加{name_str}名片成功‘)
24
25
26 def show_all():
27     print(‘显示全部名片‘)
28     print(‘=‘ * 50)
29     if len(card_list) == 0:
30         print(‘名片为空,请先新建名片‘)
31         return
32     print(‘姓名\t\t年龄\t\t电话‘)
33     for card_dict in card_list:
34         print(f‘{card_dict["name"]}\t\t{card_dict["age"]}\t\t{card_dict["phone"]}‘)
35
36
37 def search_card():
38     print(‘查询名片‘)
39     find_name = input(‘请输入查找的姓名:‘)
40     for card_dict in card_list:
41         if card_dict[‘name‘] == find_name:
42             print(‘=‘*50)
43             print(‘姓名\t\t年龄\t\t电话‘)
44             print(f‘{card_dict["name"]}\t\t{card_dict["age"]}\t\t{card_dict["phone"]}‘)
45             deal_card(card_dict)
46             break
47     else:
48         print(‘名片不存在,请重新输入‘)
49
50
51 def deal_card(find_dict):
52     action = input(‘请输入操作:【1】修改【2】删除【0】返回菜单:‘)
53     if action == ‘1‘:
54         find_dict[‘name‘] = work(find_dict[‘name‘], ‘姓名:‘)
55         find_dict[‘age‘] = work(find_dict[‘age‘], ‘年龄:‘)
56         find_dict[‘phone‘] = work(find_dict[‘phone‘], ‘电话:‘)
57         print(‘修改名片成功‘)
58     elif action == ‘2‘:
59         card_list.remove(find_dict)
60         print(‘删除成功‘)
61
62
63 def work(dict_value, message):
64     result_str = input(message)
65     if len(result_str) > 0:
66         return result_str
67     else:
68         return dict_value
69
70
71 while True:
72     main_desk()
73     action_str = input(‘请输入您的操作:‘)
74     print(f‘您的操作是【{action_str}】‘)
75     if action_str == ‘1‘:
76         new_card()
77     elif action_str == ‘2‘:
78         show_all()
79     elif action_str == ‘3‘:
80         search_card()
81         pass
82     elif action_str == ‘0‘:
83         print(‘欢迎您再次使用【名片管理系统】‘)
84         break
85     else:
86         print(‘您的输入有误,请重新输入操作‘)

上述代码是建立一个名片管理系统,每次运行该代码时需先新建名片信息,然后进行查询或者显示。

当退出该循环后再次运行该代码,还需重新建立名片,上次新建的名片信息都不存在了,如何使上次输入的名片信息还在?可直接用于本次循环中呢?

 

当退出该循环系统后再次运行此代码时,小美,阿土的名片信息均没有了,还需重新建立。

求助:如何保存原先输入的名片信息,以供下次运行循环程序时使用呢?

原文地址:https://www.cnblogs.com/www123yyy123/p/11847001.html

时间: 2024-08-29 03:32:21

Python问题求助--如何将循环程序中每次输入的数据循环使用,即退出当前循环程序后,再次运行该循环程序时可以使用原先输入的数据信息?的相关文章

MFC Wizard创建的空应用程序中各个文件内容的解析

创建的MFC应用程序名为:wd,那么: 一.wd.h解析 // wd.h : main header file for the WD application // #if !defined(AFX_WD_H__89BE48D2_F377_4DF1_8C44_4D7372A61CE0__INCLUDED_) #define AFX_WD_H__89BE48D2_F377_4DF1_8C44_4D7372A61CE0__INCLUDED_ //////////////////////////////

【译】 AWK教程指南 6在AWK程序中使用Shell命令

awk程序中允许调用Shell指令,并提供管道解决awk与系统间数据传递的问题.所以awk很容易使用系统资源,读者可利用这个特点来编写某些适用的系统工具. 范例:写一个awk程序来打印出线上人数. 将下列程序建文件,命名为 count.awk BEGIN { while ( "who" | getline ) n++ print n } 并执行下列命令: $ awk -f count.awk 执行结果将会打印出目前在线人数. 说 明: 1. awk 程序并不一定要处理数据文件,以本例而

多线程程序中操作的原子性

[转]http://www.parallellabs.com/2010/04/15/atomic-operation-in-multithreaded-application/ 多线程程序中操作的原子性 0. 背景 原子操作就 是不可再分的操作.在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头.本文主要讨论了三 个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多线程程序中对Bit field(位域)的读写操作是否是线程安全

【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy吸引人的地方在于它是一个框架,任何人都可

在程序中打开浏览器(方法1拓展部分)

实验名称:打开浏览器 实验想象:点击程序中button,打开浏览器 理论介绍:除了可以Uri.parse()方法,我们在 1.android:scheme:用于指定数据的协议部分,如http 2.android:host:用于指定数据的主机名部分,如www.baidu.com 3.android:port:用于指定数据的端口部分,一般紧随主机名之后 4.android:path:用于指定主机名和端口之后的部分 5.android:mimeType:用于指定可以处理的数据类型,允许使用通配符的方式

配置错误_“/”应用程序中的服务器错误。

配置错误 “/”应用程序中的服务器错误. 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误消息: 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的.如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误. 源错误: 行 20: </compilation> 行 21: 行 22: <authentication mode="

解决SharePoint “/”应用程序中的服务器错误。

"/"应用程序中的服务器错误. 访问被拒绝. 说明:访问服务此请求所需的资源时出错.服务器可能未配置为访问所请求的 URL. 错误消息 401.2.: 未经授权: 服务器配置导致登录失败.请验证您是否有权基于您提供的凭据和 Web 服务器上启用的身份验证方法查看此目录或页.请与 Web 服务器的管理员联系以获得其他帮助. 解决方法--管理中心--应用程序管理--选择当前应用程序--单击--身份验证提供程序--默认--弹出的页面里选中集成的Windows验证 如下图 然后就OK了. 版权

ierp应用程序中的服务器错误无法识别的配置节connectionStrings

错误环境: Windows Server 2003 Enterprise Edition IIS 6.0 错误信息: "/ierp"应用程序中的服务器错误. -------------------------------------------------------------------------------- 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错.请检查下面的特定错误详细信息并适当地修改配置文件. 分析器错误信息: 无法识别的配置节"conne

Java程序中解决数据库超时与死锁

Java程序中解决数据库超时与死锁 2011-06-07 11:09 佚名 帮考网 字号:T | T Java程序中解决数据库超时与死锁,每个使用关系型数据库的程序都可能遇到数据死锁或不可用的情况,而这些情况需要在代码中编程来解决.本文主要介绍与数据库事务死锁等情况相关的重试逻辑概念. AD: Java程序中解决数据库超时与死锁,每个使用关系型数据库的程序都可能遇到数据死锁或不可用的情况,而这些情况需要在代码中编程来解决;本文主要介绍与数据库事务死锁等情况相关的重试逻辑概念,此外,还会探讨如何避