Python字典为空时,为何代码不输出“字典无值”?

ID:20104 / 打印

python字典为空时,为何代码不输出“字典无值”?

python新手小问题:输入s查找字典

本文讨论了以下代码中遇到的一个问题:

while 1:     if(values1=='s'):         zidian_value = input("请输入字典value值")         for zidian_v in zidian.keys():             if zidian_value==zidian_v:                 print(zidian[str(zidian_value)])         else:             print("字典无值")

问题是,当字典为空时,该代码不会输入"字典无值"。

原因

立即学习“Python免费学习笔记(深入)”;

问题出在for循环中。由于字典为空,for循环不会启动。因此,即使字典中没有与给定值相匹配的值,else子句也不会执行。

解决方案

要解决此问题,可以将else子句移动到for循环之外,如下所示:

while 1:     if(values1=='s'):         zidian_value = input("请输入字典value值")         exist = false         for zidian_v in zidian.keys():             if zidian_value==zidian_v:                 exist = true                 print(zidian[str(zidian_value)])         if not exist:             print("字典无值")

改进代码

此外,为了使代码更加健壮,可以将字符串常量转换为大写并使用except-else子句来处理keyerror:

while 1:     values1 = input(''' 请选择操作步骤 1:创建字典(输出Y开始) 2:查找字典(输出S开始) 3:退出程序(输出N结束) 4:继续操作(输出w) 请选择你的操作: ''')      if values1.upper() == 'Y':         # 创建字典         # ...      elif values1.upper() == 'S':         # 查找字典         input_key = input("请输入字典key值")         try:             print(zidian[input_key])         except KeyError:             print('字典中不存在input_key对应的值')      elif values1.upper() == 'N':         # 退出程序         break      else:         # 输出错误信息         print("无效输入")
上一篇: Visual Studio Code 中 Python 绘图遇到问题怎么办?
下一篇: Python 初学者:图像生成失败和 Visual Studio Code 配置问题怎么办?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。