各位大大,关于循环体求教。
print("I---欢迎进入通讯录程序---I")print("I---1.查询联系人资料---I")
print("I---2.插入新的联系人---I")
print("I---3.删除已有联系人---I")
print("I---4.退出通讯录程序---I")
flag = 1
numCard = {}
while (flag):
temp = int(input("请输入相关的指令代码:"))
if temp == 4:
print("I---感谢使用通讯录程序---I")
flag=0
if temp == 1:
checkName = input("请输入联系人姓名:")
print(checkName + ":" + numCard.get(checkName, "未存储该用户联系方式!"))
if temp == 3:
checkName = input("请输入联系人姓名:")
if checkName in numCard.keys():
del numCard
print("删除成功!")
else:
print("删除失败")
if temp == 2:
checkName = input("请输入新增的联系人姓名:")
if checkName in numCard.keys():
print("您输入的用户在通讯录中已存在--》" + checkName + ":" + numCard)
isUpdate = input("是否修改用户资料(YES/NO):")
if isUpdate == "YES":
upNum = input("请输入用户联系电话:")
numCard = upNum
print("修改成功!现在是:"+ checkName + ":" + numCard)
if isUpdate == "NO":
print("已放弃修改!")
else:
print("请输入正确指令!")
else:
inNum = input("请输入用户联系电话:")
numCard = inNum
else:
print("I---请输入正确的指令!---I")
关于字典课后作业那个做通讯录的:
问题一:为啥我使用2新增用户不会执行while循环里的那个最后那个else?,选择1查询和3删除都会执行最后那个
else:
print("I---请输入正确的指令!---I")
问题二:修改已有联系人时,如果输入的非YES和NO时,判断输入有误,能否返回输入YES/NO的这一层,而不是直接跳到第一层?
问题三:为啥新增小甲鱼名片后,再次新增重复输入小甲鱼时,按NO,不会执行
isUpdate = input("是否修改用户资料(YES/NO):")
if isUpdate == "YES":
upNum = input("请输入用户联系电话:")
numCard = upNum
print("修改成功!现在是:"+ checkName + ":" + numCard)
if isUpdate == "NO":
print("已放弃修改!")
else:
print("请输入正确指令!")
这里面的这个else,但是按YES时虽然能修改成功,却也会执行else?
老哥们while里这个else我有点懵,希望不吝赐教帮忙解惑{:10_266:}
我查到问题了,得用if elif else写,然后问题二用函数能解决{:10_285:}。但是新问题又出现了。
问题一:为啥我使用2新增用户不会执行while循环里的那个最后那个else?,选择1查询和3删除都会执行最后那个
因为你设置在 if temp == 2 下面 ,当然只要 这里的 if 条件不成立,就会执行 else 的代码块了,改成 elif 即可
问题二:修改已有联系人时,如果输入的非YES和NO时,判断输入有误,能否返回输入YES/NO的这一层,而不是直接跳到第一层?
加个 while 循环即可
问题三:为啥新增小甲鱼名片后,再次新增重复输入小甲鱼时,按NO,不会执行
会成功执行,可能是你输入错误了大小写要严格区分
这里面的这个else,但是按YES时虽然能修改成功,却也会执行else?
同问题一用 elif 即可
参考代码:
print("I---欢迎进入通讯录程序---I")
print("I---1.查询联系人资料---I")
print("I---2.插入新的联系人---I")
print("I---3.删除已有联系人---I")
print("I---4.退出通讯录程序---I")
flag = 1
numCard = {}
while (flag):
temp = int(input("请输入相关的指令代码:"))
if temp == 4:
print("I---感谢使用通讯录程序---I")
flag=0
elif temp == 1:
checkName = input("请输入联系人姓名:")
print(checkName + ":" + numCard.get(checkName, "未存储该用户联系方式!"))
elif temp == 3:
checkName = input("请输入联系人姓名:")
if checkName in numCard.keys():
del numCard
print("删除成功!")
else:
print("删除失败")
elif temp == 2:
checkName = input("请输入新增的联系人姓名:")
if checkName in numCard.keys():
print("您输入的用户在通讯录中已存在--》" + checkName + ":" + numCard)
while True:
isUpdate = input("是否修改用户资料(YES/NO):")
if isUpdate == "YES":
upNum = input("请输入用户联系电话:")
numCard = upNum
print("修改成功!现在是:"+ checkName + ":" + numCard)
elif isUpdate == "NO":
print("已放弃修改!")
else:
print("请输入正确指令!")
continue
break
else:
inNum = input("请输入用户联系电话:")
numCard = inNum
else:
print("I---请输入正确的指令!---I")
页:
[1]