我是编程界的新手,我开始学习python。你知道吗
我想做一个简单的测验应用程序,但我在一开始就被卡住了。我想不出一个办法来打印一个随机的问题并检查答案是否正确。你知道吗
我写了这段代码,有时还能用,但有时会出错。有人能告诉我这个错误是什么吗?我该怎么办?你知道吗
import random
def topic_ch():
print ("hello you have 3 topics chose your topic by preesing the topic number \n 1-random asking \n 2- quizz")
topc = input()
if topc == "1":
topic_1()
def topic_1():
set1 = {1: "who is the presedint of USA ? :\n -1 D.Trump 2-Emmanuel Macron\n -3 George W. Bush 4-Bill Clinton:",
2:"who is the presedint of France ? :\n -1 D.Trump 2-Emmanuel Macron\n -3 George W. Bush 4-Bill Clinton:"}
print (random.choice(set1))
ans = input()
for set1[1] in set1:
if ans == "1":
print ("correct")
break
else:
print ("opss")
break
for set1[2] in set1:
if ans == "3":
print ("correct")
break
topic_ch()
错误:
python Traceback (most recent call last): File "C:\Users\Raad\Desktop\oi.py", line 28, in topic_ch() File "C:\Users\Raad\Desktop\oi.py", line 7, in topic_ch topic_1() File "C:\Users\Raad\Desktop\oi.py", line 13, in topic_1 print (random.choice(set1)) File "C:\Users\Raad\AppData\Local\Programs\Python\Python37-32\lib\random.py", line 262, in choice return seq[i] KeyError: 0
random.choice
需要一个序列—一个容器,在这个容器中,您可以通过从0到小于容器长度的1的数字索引来获取项目(列表和元组就是这样的例子)。当您传入字典时,它会随机选择元素0或元素1(因为字典的长度为2)。1恰好对应于你的字典的一个键,所以有时它看起来像是在工作。如果您的字典键只是比字典长度小0到1之间的数字,这可能是可行的,但一般来说,从字典中选择随机项的更好方法如下注意,
set1
不是这个变量的好名字,因为1)它不是一个集合,它是一个字典,2)它没有告诉我们变量中存储了什么值。您的代码可能也有其他问题-如果您在合并此修复程序后仍然无法使其正常工作,请随时提出其他问题。你知道吗random.choice()
需要序列(例如列表)作为输入,而不是字典。你知道吗而不是:
print (random.choice(set1))
尝试:
相关问题 更多 >
编程相关推荐