Python 我正在用一个txt文件做一个选择题测验,但不知道如何随机化选项并给出分数
如何随机化选项,让用户输入B C或D,并为每个正确答案添加点数在洗牌数组之前,您需要使用用户correctans=answer1行 在对数组进行洗牌之后,变量answer1的值发生了变化,它不再存储正确的answery[1],这就是为什么您得到的分数为0 您还应该使用if语句代替while循环,因为您希望用户只输入一个选项。两件事: 在洗牌应答数组之前设置正确的应答变量。否则,你会得到一个随机的正确答案,而不是第一个不是你想要的答案。 把打印放在代码的末尾,而不是在循环的中间,除非你想在每个问题之后打印分数。 最后,用if替换while。while告诉您的代码循环,只要userans变量等于correctans变量,这两个变量在循环体中都不会改变,因此将永远保持不变。if语句检查条件一次。 代码中有一个冗余变量声明。只需设置问题1=y[0],而不是使用两个作业 奖励:评论你的代码 希望这有帮助Python 我正在用一个txt文件做一个选择题测验,但不知道如何随机化选项并给出分数,python,text-files,Python,Text Files,如何随机化选项,让用户输入B C或D,并为每个正确答案添加点数在洗牌数组之前,您需要使用用户correctans=answer1行 在对数组进行洗牌之后,变量answer1的值发生了变化,它不再存储正确的answery[1],这就是为什么您得到的分数为0 您还应该使用if语句代替while循环,因为您希望用户只输入一个选项。两件事: 在洗牌应答数组之前设置正确的应答变量。否则,你会得到一个随机的正确答案,而不是第一个不是你想要的答案。 把打印放在代码的末尾,而不是在循环的中间,除非你想在每个问题
points = 0
with open("ComputerScience.txt","r") as f:
for line in f:
y = line.split(",")
question = y[0]
question1 = question
del y[0]
random.shuffle(y)
answer1 = y[0]
answer2 = y[1]
answer3 = y[2]
answer4 = y[3]
print(question1+"\n","(A)",answer1,"\n","(B)",answer2,"\n","(C)",answer3,"\n","(D)",answer4)
correctans = answer1
userans = input("Enter A,B,C,D: ")
while userans == correctans:
points = (points+1)
print(points)
分数=0
使用openlovestory.txt,r作为f:
对于f中的行:
z=直线分割,
问题=z[0]
correctans=z[-1]
问题1=问题
y=z[1:-1]
兰登·沙夫利
回答1=y[0]
回答2=y[1]
回答3=y[2]
回答4=y[3]
ans={}
k=0
对于“A B C D”中的选项。拆分:
ans[choice]=y[k]
k+=1
import random
您已经编写了随机选项的代码,该代码不起作用?您面临的问题是什么?第一个答案是正确的,但您希望将其随机化?哪个python版本?我正在尝试将选项随机化,以便从文本文件中,每次打开程序选项A B C D都是不同的,用户输入A B C或D来选择正确的答案。您如何知道哪个答案是正确的?谢谢,我会这样做,但我如何让用户输入B C或D并从中选择一个来获得正确的答案您可以使用userans=INPUNTER A,B,C,D:在while语句中。这样,我们要求用户反复给出答案,直到用户给出正确答案。@Bassim我想你希望用户反复输入,是吗?例如,如果用户输入了一个选项,如果答案不正确,您希望他输入其他选项。如果你想让用户只输入一次,用户如果我想让它在每次你完成一个问题时移到下一个问题,我不知道你的文本文件结构是怎样的,用在下面的文本文件A代表?,苹果,球,猫,狗,苹果B代表?,苹果,球,猫,狗,球C代表?,苹果,球,猫,狗,catYes这就是它的结构它说“s”没有定义我已经弄明白了我想我把s.split改成了str.split但现在我遇到了一个问题,它没有打印问题,而且多项选择选项也没有被洗牌。每个问题的正确答案都设置为A。我希望这样,每次运行程序时,正确答案都会从A更改为B,例如从A更改为D。
import random
print(question1+"\n","(A)",answer1,"\n","(B)",answer2,"\n","(C)",answer3,"\n","
(D)",answer4)
userans = input("Enter A,B,C,D: ")
print('ans', ans[userans], 'act ans', correctans)
if ans[userans] in correctans:
points += 1
print('points:', points)