小甲鱼零基础学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. Photoshop 各混合模式 RGB 是如何计算的

    原文链接:https://www.jb51.net/photoshop/249182.html 1.正常模式(Normal) 默认模式,显示混合色图层的像素,没有进行任何的图层混合.这意味着基色图层( ...

  2. HCNP Routing&Switching之OSPF LSA更新规则和路由汇总

    前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...

  3. 20210805 noip31

    考场 没有一眼题 T1 想到先贪心地算出最大得分,任意构造出一种方案,不断调整以增大字典序. T2 发现在 \(x_k\) 确定的情况下操作次数就是左右两边的逆序对数,\(x_i\) 互不相同时直接找 ...

  4. ubuntu下使用minicom

    环境 宿主机平台:Ubuntu 16.04.6 目标机:iMX6ULL 安装及使用 首先时在Ubuntu里安装minicom sudo apt-get install minicom 接下来可以使用 ...

  5. IPSec协议框架

    文章目录 1. IPSec简介 1.1 起源 1.2 定义 1.3 受益 2. IPSec原理描述 2.1 IPSec协议框架 2.1.1 安全联盟 2.1.2 安全协议 报文头结构 2.1.3 封装 ...

  6. ubuntu 20.04 发邮件配置

    安装sendmail后,发邮件一直没有成功,因此卸载sendmail后,安装heirloom-mailx. # unbuntu 18.04和20.04移除了heirloom-mailx,需要另外配置软 ...

  7. VUE006. 前端跨域代理服务器ProxyTable概述与配置

    概述 使用  vue-cli  工具生成一个  vue  项目: vue init webpack my-project-vue 在生成的项目结构里,会有一个  index.js  文件.在这个文件里 ...

  8. python库--tensorflow

    方法 返回值类型 参数 说明 张量    .constant() Tensort 张量 实例t value 创建一个常量tensor dtype=None 输出类型 shape=None 返回tens ...

  9. clickonce的密钥到期问题处理

    最近clickonce的密钥到期了,在网上找了些文章用来修改密钥的到期时间,已成功生成新密钥,好不好使暂时未测. 在此小结一下,以备参考: 1.在原密钥所属电脑上cmd执行如下命令 renewcert ...

  10. vue 工作随笔

    现在工作要做一个电商项目,将工3作的笔记记在这儿,以后方便结总 本套项目用的前端方案 是: vue vue-router Element -ui Axios Echarts 后端技术采用node.js ...