小甲鱼零基础学python第25讲课后习题动手练习---通讯录

**************************通讯录要求*******************************

输入指令:

|---1:查询联系人资料---| \
|---2:插入新的联系人---| \
|---3:删除已有联系人---| \
|---4:退出通讯录程序---|

*******************************题目分析*********************************

代码逻辑:
输入指令1:
如果有:
输出查询到的信息
如果没有:
提示没有该用户的信息
输入指令2:
提示输入用户名
如果存在该用户名:
提示是否需要修改用户信息
如果是:
修改用户信息
如果否:
打印用户信息
如果不存在用户信息:
添加用户信息
输入指令3:
输入用户名:
用户是否存在于字典中:
如果存在该用户:
提示是否确定要删除用户信息:
如果是:
删除用户信息
如果否:
打印用户信息
如果不存在该用户:
提示该用户不存在
输入指令4:
打印感谢信息
重新给Q赋值,是程序跳出

*****************************出现的问题*********************************

1、print()语句使用换行符的时候最后一个括号前不需要加上换行符\

  print('xxxxxxxx \

xxxxxxxxxxxxxxxxx\

xxxxxxxxxxxxxxx ')

2、这段程序早就写好了就是编译没法通过,最后在其他编辑软件里面调试才慢慢的将BUG找出来,最致命的就是以前最不以为然的一点-----讲TAB与SPACE混用的问题。

  python中缩进使用4个空格表示的,notepad++中设置的TAB按键是4个空格,但是将TAB于空格混用就很麻烦了,程序一直报错,重新写还是没用,这样用起来已经变成习惯了,真的是可怕,以后一定要改正这个习惯!!

3、对指令码的判断,输入的是字符型变量,所以对程序进行判断的时候应该将指令码转换成整型数据进行判断。

*************************编译通过后的代码如下*******************************

print('|---欢迎进入通讯录程序---| \
|---1:查询联系人资料---| \
|---2:插入新的联系人---| \
|---3:删除已有联系人---| \
|---4:退出通讯录程序---| ') connect_dict = {}
Q = True while Q :
num = int(input('请输入相关的指令码:'))
if num == 1:
name1 = input('请输入联系人姓名:')
if name1 in connect_dict.keys():
# if connect_dict.has_key(name1):
print(name1,':',connect_dict[name1])
else:
print('没有用户信息可以输入指令2添加用户信息')
if num == 2:
name2 = input('请输入联系人姓名:')
if name2 in connect_dict.keys():
print('您输入的姓名在通讯录中已存在-->>',name2,':',connect_dict[name2],'\n')
question = input('是否修改用户资料:')
if question == 'YES':
answer = input('请输入用户联系电话:')
connect_dict[name2] = answer
if question == 'NO':
print(name2,':',connect_dict[name2])
else:
phone2 = input('请输入联系人电话:')
connect_dict[name2]=phone2
if num == 3:
name3 = input('请输入联系人姓名:')
if name3 in connect_dict.keys():
question3 = input('是否确定要删除该用户信息(YES/NO):')
if question3 == 'YES':
del connect_dict[name3]
print('已删除',name3,'的个人信息')
else :
print(name3,':',connect_dict[name3])
else :
print(name3,'不在通讯录中')
if num == 4:
print('|---感谢使用通讯录程序---|')
Q = False

*************************************思考**********************************************************

1、跳出程序的方法有多种,C语言的思路是在循环中直接用break跳出循环,以前学习过的方法中给相关变量赋值就可以跳出循环。小甲鱼给出的是直接break跳出循环结束程序。

2、看了小甲鱼给出的参考答案之后觉得自己写程序真的很啰嗦。。。。。所以显得程序很冗长。

3、前几天做课后习题的时候,特别是做递归的时候一点思路都没有,都不知道该如何动手,不过这次还好,这次是先写的代码逻辑,将程序结构给列举出来了,后面针对每一个步骤给出对应的代码实现还是比较好实现的。

@自学的路道阻且长,还有很多需要学习的地方,欢迎大家指正,一起学习,一起进步呀~~~

小甲鱼零基础学python第25讲课后习题动手练习--通讯录的更多相关文章

  1. 小甲鱼零基础入门PYTHON

     000.愉快的开始 00:17:37 ☆  001.我和Python的第一次亲密接触 00:13:26 ★  002.用Python设计第一个游戏 00:24:00 ★  003.小插曲之变量和字符 ...

  2. 零基础学python》(第二版)

    ---恢复内容开始--- 零基础学python>(第二版) python学习手册 可以离线下载,  .chn格式, 插入小幽默笑话,在学习累的时候看看笑话 放松一下 欢迎下载转载,请注明出处,谢 ...

  3. 小甲鱼零基础入门学习python--课后作业

    [小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.Easy ...

  4. [零基础学python]为什么要开设本栏目

    这个栏目的名称叫做"零基础学Python". 如今网上已经有不少学习python的课程.当中也不乏精品.按理说,不缺少我这个基础类型的课程了.可是,我注意到一个问题.无论是课程还是 ...

  5. 零基础学python,python视频教程

    零基础学python,python视频教程 这是我收集到的互联网上的视频资源,所有内容均来自互联网.仅供学习使用. 目前我在也在学习过程中,会把学习过程中遇到问题以及解决问题的方式,总结到我的公众号[ ...

  6. 小甲鱼零基础python课后题 P22 021函数:递归是神马

    0.递归在编程上的形式是如何表现的呢? 答:在编程上,递归表现为函数调用本身这么一个行为. 1.递归必须满足哪两个基本条件? 答:1函数调用自己. 2有正确的返回条件 2.思考一下,按照递归的特性,在 ...

  7. Python学习课程零基础学Python

    python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...

  8. 零基础学python之构建web应用(入门级)

    构建一个web应用 前面的学习回顾: IDLE是Python内置的IDE,用来试验和执行Python代码,可以是单语句代码段,也可以是文本编辑器中的多语句程序. 四个内置数据结构:列表.字典.集合和元 ...

  9. 小甲鱼Python第七讲课后习题

    0.if not(money < 100):上边这行代码相当于? if money>=100 1.assert 的作用是什么? assert “断言”,当这个关键字后边的条件为假的时候,程 ...

随机推荐

  1. 微服务架构及raft协议

    微服务架构全景图 服务注册和发现 Client side implement 调用需要维护所有调用服务的地址 有一定的技术难度,需要rpc框架支持 Server side implement 架构简单 ...

  2. [考试总结]noip模拟46

    脑袋确实是不好使了需要回家暴颓治疗 数数数树鼠树 真好玩. 数数 大水题一个,妥妥的签到题目,然后... 我没签上 气展了!!! 其实我还是想麻烦了. 就是我们实际上就是排序之后每一次找头上和尾巴上的 ...

  3. Docker(40)- docker 实战三之安装 ES+Kibana

    背景 参考了狂神老师的 Docker 教程,非常棒! https://www.bilibili.com/video/BV1og4y1q7M4?p=16 es 前言 es 暴露的端口很多 es 十分耗内 ...

  4. 判断input radio选中那个

    var _sex=$("input[name='sex']:checked").val(); if(_sex==null){ layer.msg("请选择性别" ...

  5. AI学习1

    什么是AI: 功能介绍:是一种应用于出版.多媒体和在线图像的工业标准矢量插画的软件,是一款非常好的矢量图形处理工具应用:标志设计.字体设计.印刷出版.海报书籍排版.专业插画.多媒体图像处理和互联网页面 ...

  6. MySQL实战45讲(01--05)-笔记

    目录 MySQL复习 01 | 基础架构:一条SQL查询语句是如何执行的? 连接器 查询缓存 分析器 优化器 执行器 02 | 日志系统:一条SQL更新语句是如何执行的? 重要的日志模块:redo l ...

  7. ARM架构安装ubuntu系统

    一.简介 arm开发板制作系统是比较麻烦,不论使用busybox还是yocto制作根文件系统对新手都比太友好,除非深度定制,否则使用ubuntu系统既可以满足,把更多的精力放在应用开发上. 二.准备材 ...

  8. 利用nginx 来实现内网yum源(反向代理)

    简介 在项目部署时,尤其是在政府企业,对于外网简直是奢望,但是对于运维来说,没有外网的话只能自建yum源.我今天来说的是一种简单的自建yum源方法,前提是必须有一台内外网都有的机器,我们一般称为前置机 ...

  9. pibbtimq高级使用技术,双向通信

    本案例目是是服务端发送客户端,客户端收到反应给服务端,双向通信客户端代码如下:import pikaimport timeconnection = pika.BlockingConnection(pi ...

  10. 洛谷P1781——宇宙总统(高精度排序)

    题目描述 地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竟选总统,现在票数已经统计完毕,请你算出谁能够当上总统. 输入输出格式 输入格式: 第一行为一个整数n,代表竞选 ...