首页 > 编程语言 >(Python)简易通讯录

(Python)简易通讯录

时间:2022-11-13 17:23:44浏览次数:39  
标签:name Python 简易 通讯录 lis print Mydict 输入 字典

问题描述:

将用户输入用逗号分隔的一系列人名作为键,用户输入的逗号分隔的手机号作为值,创建字典MyDict,

输入一个正整数 n,你将被要求读入 n 个输入(输入形式如下所示),

每得到一个输入后,根据输入进行操作。

add name number: # 在字典中加入以name 为键、以number 为值的元素

print: # 输出字典

del name:# 删除字典中键为name 的元素,当name 不存在时,输出'键不存在'

update name number: # 更新字典中以name 为键的元素的值为number

value: # 以列表形式输出字典中的所有值

key: # 以列表形式输出字典中所有键

clear: # 清空字典

第一行输入一个正整数 n

第二行输入用逗号分隔的字符串切分为一系列人名

第三行输入的逗号分隔的、与第二行相同数量的手机号

随后的 n 行,每行输入一个如示例格式的命令,命令与参数间空格分隔

每遇到“print”时,在新的一行输出字典

【样例输入】

3

Tom,Jack,Lee

13877665566,18977665543,13522336688

add John 13988997765

del Lee

print

【样例输出】

{'Tom': '13877665566', 'Jack': '18977665543', 'John': '13988997765'}

 

 

 IPO:

  输入题目相应要求,用函数模块化的思想,将输入的命令按模块进行处理,再输出。

 

代码如下:

 1 def add(lis):    #add函数
 2     key1 = lis[1]
 3     value1 = lis[2]
 4     Mydict[key1] = value1
 5 
 6 def del_(lis):    #del函数,del_防止与内置函数冲突
 7     name1 = lis[1]
 8     if name1 in Mydict:
 9         Mydict.pop(name1)
10     else:
11         print("键不存在")
12 
13 def keys(n):    #输出所有的keys
14     keys_list = n.keys()
15     print(list(keys_list))
16 
17 def values(n):    #输出所有的values
18     values_list = n.values()
19     print(list(values_list))
20 
21 def update(lis):    #修改函数
22     name2 = lis[1]
23     value2 = lis[2]
24     Mydict[name2] = value2
25 
26 if __name__ == "__main__":
27     Mydict = {}
28     n = int(input())
29     name = input().split(',')
30     number = input().split(',')
31     Mydict = dict(zip(name,number))
32     while True:
33     #for i in range(n-1):
34         lis = input().split()
35         if lis[0] == 'add':
36             add(lis)
37         if lis[0] == 'del':
38             del_(lis)
39         if lis[0] == 'print':
40             print(Mydict)
41             break
42         if lis[0] == 'key':
43             keys(Mydict)
44             break
45         if lis[0] == 'value':
46             values(Mydict)
47             break
48         if lis[0] == 'clear':
49             Mydict.clear()
50         if lis[0] == 'update':
51 update(lis)

 

备注:

  • 因为字典的性质,add函数与update函数块作用实际上效果相同。
  • 问题描述的输入正整数n,理解为后续模块函数的操作次数,但我在这直接套用一个死循环,

    如果需要利用输入的n进行有限次的操作,将注释的for i in range(n-1):取消注释,

    再把选择判断函数的break删掉即可(应该)

  • 应该还有比if更简便的判断再调用模块化函数的方式,这里以后再深入研究

 

 

结束

累死了 还有其他作业要补 妈的 一拳把全中国大学打爆

 

标签:name,Python,简易,通讯录,lis,print,Mydict,输入,字典
From: https://www.cnblogs.com/cjun0701/p/16886346.html

相关文章

  • python元祖
    元祖里是数据是固定的,不能修改1str_tuple=('dew','','as')23int_tuple=(1,2,4,5,4)45float_tuple=(1.1,20.3,23.9)67bool_tuple=(True,Fals......
  • 【Python零基础入门篇 · 41】:内置模块的使用二:pyinstaller模块(打包py文件以及更换图
    pyinstaller模块pyinstaller是第三方模块,需要在Terminal输入命令安装:pipinstallpyinstaller步骤演示在Day18.py文件下写入代码在cmd或Terminal找到文件进行打包。......
  • 【Python零基础入门之终结篇】:虚拟机Linux命令、Vim编辑器、有趣的命令
    以下操作均在ubuntu虚拟机中的终端进行鼠标右键,点击“打开终端”ctrl+shift+"+":放大终端字体ctrl+"-":减小终端字体虚拟机Linux命令基本命令常用命令命令作......
  • Python开发人脸动态追踪
    Python开发人脸动态追踪导入库文件cv2通过pip命令安装pipinstallopencv-python或者在在设置里面找到+进行opencv-python你还要去下载文件:haarcascade_frontalface_alt.xm......
  • 网易云vip音乐免费下载方法(python爬虫)
    importosimportreimportjsonimportrequestsfromlxmlimportetreedefdownload_songs(url=None):  ifurlisNone:    url='https://music.......
  • Python3-异步协程
     importasyncioimporttimeasyncdefget_request(url):print('正在请求的url:',url)awaitasyncio.sleep(2)#支持异步模块代码print('请求结束:'......
  • python2 切换到 python3
    python2切换到python3Part.1:py3中不支持的py2用法1.1PrintIsAFunctionpy2中print为保留的关键字,在py3中,改为普通的函数。Old:print"Theansweris......
  • python的while循环
    语法while条件:#条件成立,循环执行的代码一#条件成立,循环执行的代码二#条件成立,循环执行的代码三#条件成立,循环执行的代码四#.......如......
  • python的for循环
    语法foriinxxx#循环体else:#循环正常结束执行执行else中的代码#循环通过break强制结束则不会执行else用法1、遍历列表li=[34,66,33,7......
  • Python绘制跳动的红心
    前言最近有一个电视剧,讲程序员的故事,巴拉巴拉......,被我关注的一个up主,吐槽了。总之电视剧中有一个跳动的心,up主复现了,那我也跟着学习了下,也弄了个动图~.爱心为画这样......