尝试通过随机选择来进行一个小游戏

2024-03-28 18:27:29 发布

您现在位置:Python中文网/ 问答频道 /正文

import random

file1 = open ("Questions_tf.txt","r")

q = [] #True/false questions
a = [] #True/false answers
dict1 = {}


with open ("Questions_tf.txt", "r") as file1:
        q = [line.strip() for line in file1]

with open ("tf_answers.txt", "r") as file2:
        a = [line.strip() for line in file2]

random_number = 0

def answers(a, file2):
    global tf_randno
    print a [random_number]
    print random_number
    return a

def Questions(q, file1, random_number):
    random_number = random.randrange(0, 5)
    print q[random_number]
    print random_number
    return q
    return random_number

def intro():
    print "Welcome to the game"

def main():
    intro()
    Questions(q, file1, random_number)
    answers(a, file2)


    file1.close()
 main()

这是我最新的密码。在

^{pr2}$

首先,我的代码还远未完成,至少现在的情况与结果几乎不符。但无论如何,这是代码的开始。我现在有了它,我试着让它从有问题的文本文件中随机抽取一个问题,然后从文本文件中选择相同的答案,这样它们就相同了。但我不明白为什么会这样。还有,我试着用课堂来做,但也没能做到。有更好的方法吗?在


Tags: txtfalsetruenumberreturntfdefline
2条回答

因为每个答案都属于一个问题,所以你可以让它们配对。你可以在一个列表中阅读qas(问题和答案),其中包含成对的问题和答案。然后可以使用random.choice随机选择一个。在

大致如下:

import random

with open ('Questions_tf.txt', 'r') as qs, open ('tf_answers.txt', 'r') as ass:
    qas = [map (str.strip, qa) for qa in zip (qs, ass) ]

def randomQA ():
    return random.choice (qas)

for _ in range (10):
    question, answer = randomQA ()
    #actual quiz goes here
    print 'The question is', question
    print 'The answer is', answer

首先,您不必在Python中初始化变量。它通常会根据需要创建它们。仅此代码就足够了:

import random

with open('questions.txt', 'r') as question_file:
    questions = [line.strip() for line in question_file]

with open('answers.txt', 'r') as answer_file:
    answers = [line.strip() for line in answer_file]

# Make a list of tuples: [(q0, a0), (q1, a1), ...]
trivia = zip(questions, answers)
# Shuffle it in place
random.shuffle(trivia)
# Then iterate over it
for question, answer in trivia:
    # play the game
    pass

希望你能看到这是如何容易地融入你的主。顺便说一下,您可以使用:

^{pr2}$

定义在命令行上调用程序时应运行的代码。您也不需要显式地close文件,因为with语句会自动执行此操作。在

相关问题 更多 >