有人可以帮助我吗?无论我穿什么号码我得到相同的答案/输出我的清单给出了相同的答案
items = {'1': '2', '3': '4', '5': 'a'}
choice = input("Select a number: ")
if choice in items:
the_choice = items[choice]
print('you go right')
else:
print('you go left')
有人可以帮助我吗?无论我穿什么号码我得到相同的答案/输出我的清单给出了相同的答案
items = {'1': '2', '3': '4', '5': 'a'}
choice = input("Select a number: ")
if choice in items:
the_choice = items[choice]
print('you go right')
else:
print('you go left')
根据该意见,你想的是,如果用户键入数字1和5之间的“一”这是打印“你向右走”。 所以items
应该是一个字符串列表,而不是一个字典,也不是一个集合。列表由[]
定义。 然后,最好将你的输入(例如str(input())
)转换为字符串。 最后,Python中的索引从0开始不是1,因此您应该分配items[choice-1]
而不是items[choice]
(否则如果用户选择为5,则会生成错误)。我还添加了另一个if
陈述,因为items['a']
对于列表没有任何意义。
其中给出:
items = ['1', '2', '3', '4', '5', 'a']
choice = str(raw_input("Select a number: "))
if choice in items:
if choice is not 'a':
the_choice = items[int(choice)-1]
print('you go right')
else:
print('you go left')
它将如果用户写1,2,3,4,5或 'A' 返回you go right
; you go left
适用于所有其他情况。
请解释你希望从你的代码中得到什么样的行为。同时给出输入和输出的例子 –
这是一个完全有效的代码,我猜你正在使用Python 2.x并且它会评估你的输入(例如int) - 如果是这种情况,请尝试使用改为'raw_input'。 – zwer
只是跟在@zwer上,'raw_input'将任何输入转换成一个字符串,从而可以匹配列表中的字符串:_The函数然后从输入中读取一行,将其转换为string_,[source](https:/ /docs.python.org/2/library/functions.html#raw_input) – patrick