我正在通过LPTHW,我正在尝试创建一个游戏,您必须正确回答一系列问题才能转移到另一个房间。如果您回答错误,则会被送回或游戏结束。
如何更新变量,在本例中为ans,以反映新值?我的答案似乎停留在第一个正确答案值上。
我将问题/答案对的字典转换为元组列表。当使用问题时,空列表会附加该问题和答案元组,原始列表会删除相同的元组,以免再次使用。非常感谢任何指导,谢谢。
powershell的示例输出: 锡安国家公园在哪里?
utah #raw输入
犹他州犹他州#这是从print语句输出
那是正确的!
你有2个问题要去 正确的答案:1
[('哪里是锡安国家公园?','犹他')]#这是用q / a键/值更新的空列表
商店猫的名字是什么?
furball
#p> furball#仍然比较第一个回答犹他州?
错误答案2 [('锡安国家公园在哪里?','犹他州'),('商店猫名叫什么?','毛球')]
什么是'Rauh Welt'?' 粗糙的世界
>
答案 0 :(得分:0)
每次使用raw_input()时,python都会阻塞并等待来自用户的输入。一旦用户提供了该输入(并按下回车),它将返回用户输入的值。
每次您希望向用户查询信息时,必须再次使用raw_input来获取该信息:
ans1 = raw_input('输入问题1的答案') ans2 = raw_input('输入问题2的答案')
每当你想要一个新答案时,你都需要使用raw_input来获得它。
请注意,在脚本结束时,您正在执行此操作:
for i in keys: #next 3 line compare used question to keys and if matched
if i in qlist: # ...removes tuple from keys
keys.remove(i)
new_question = keys[0][0] # selects new question
print new_question
global ans
ans = keys[0][1]
print ans
new_ans = raw_input("> ")
ans = new_ans
在这里你循环键,如果键在qlist中你删除它并要求一个新的答案。但是,在原始答案错误的情况下(我不在qlist中),您只需返回while循环。
看起来你应该检查你的缩进,因为你可能在一个不属于那里的块中得到了代码。