首页 新闻 会员 周边

Python新手小问题,贴代码

0
[已解决问题] 解决于 2018-12-14 12:15

zidian={}

while 1:
values1=input('''
请选择操作步骤
1:创建字典(输出Y开始)
2:查找字典(输出S开始)
3:退出程序(输出N结束)
4:继续操作(输出w)
请选择你的操作:
''');
if(values1=='Y'):
zidian_value=input("请输入字典Value值")
zidian_Key=input("请输入字典Key值")
Y_N=input("是否继续添加字典?")
if(Y_N=="w"):
print("字典添加成功,继续添加")
zidian[zidian_value]=zidian_Key
print(zidian)
else:
values1 = input('''操作有误请选择操作步骤
1:创建字典(输出Y开始)
2:查找字典(输出S开始)
3:退出程序(输出N结束)
4:继续操作(输出w)
\n
请选择你的操作:
''');
elif(values1=='S'):
zidian_value = input("请输入字典Value值")
for zidian_v in zidian.keys():
if zidian_value==zidian_v:
print(zidian[str(zidian_value)])

        else:
            print("字典无值")
else:
    print("正在退出系统,请稍候...")
    break

我就是想问,假如你第一遍输入是S 不会进入 print("字典无值")
但是你在字典中,添加了一个值,在搜索字典没有的值,才会进入这儿
想问问这是为什么???新人

永远跟党走i的主页 永远跟党走i | 小虾三级 | 园豆:1519
提问于:2018-11-28 22:10
< >
分享
最佳答案
0

看了你这一段代码其实问题有很多,但也并不影响你自己使用。
字典的搜索都是根据key去查找数据的,你代码里面是直接找数据,而且用的for循环,问题就在这个for循环了,你第一次输入s,再输入你想要查找的数据,因为你的字典开始就是空的,所以这个for循环是进不去的(意思就是字典的元素是0个所以不会运行for循环),如果你的字典最开始是有数据(超过2个元素)的话,你这个代码也会有问题,if和sele里面代码都会被执行。你自己试试就知道了。注意: 字典是根据key键来查询数据的。我给你改了以下代码,你自己研究以下,希望对你有用:
zidian={}
while 1:
values1=input('''
请选择操作步骤
1:创建字典(输出Y开始)
2:查找字典(输出S开始)
3:退出程序(输出N结束)
4:继续操作(输出w)
请选择你的操作:
''')
if(values1.upper()=='Y'):# 字符串转换为大写,就不用特意的输入大写字母了
while 1:
zidian_value=input("请输入字典Value值")
zidian_Key=input("请输入字典Key值")
zidian[zidian_Key] = zidian_value
print("字典添加成功,继续添加")
print(zidian)
Y_N=input("是否继续添加字典?Y or N")
if(Y_N.upper()=="Y"):
continue
else:
break
elif(values1.upper()=='S'):
input_key = input("请输入字典key值")
try:
print(zidian[input_key])
except KeyError as e:
print('字典中不存在input_key对应的值')
else:
print("正在退出系统,请稍候...")
break

奖励园豆:5
linux超 | 菜鸟二级 |园豆:291 | 2018-12-11 15:49

谢谢

永远跟党走i | 园豆:1519 (小虾三级) | 2018-12-14 12:15

大佬

永远跟党走i | 园豆:1519 (小虾三级) | 2018-12-14 12:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册