Python 2.6 趣味游戏,随机选择多项选择题和判断题

0 投票
1 回答
981 浏览
提问于 2025-04-18 00:09
import random
players = 0
player1 = 0
player2 = 0

def open_file(file_name, mode):
    try:
        the_file = open(file_name, mode)
    except(IOError), e:
        print 'Cannot open file', file_name + '. Try moving its location.'
        raw_input('\nPress enter to exit. ')
        sys.exit()
    else:
        return the_file

def next_line(the_file):
    line = the_file.readline()
    line = line.replace('/', '\n')
    return line

def main():    
    file = open_file('Trivia_Questions.txt', 'r')
    questions = file.read().split('\n\n')
    file.close()
    random.shuffle(questions)
    for question in questions.splitlines():
        if next_line(question) == 'Multiple Choice':
            subject, question, answer1, answer2, answer3, answer4, reason, empty  = map(question)
            print subject
            print question
            print '1 -', answer1
            print '1 -', answer1
            print '1 -', answer1
            print '1 -', answer1
            print reason
            subject, question, answer1, answer2, answer3, answer4, reason, empty = next_block(file)
        else:
            subject, question, answer1, answer2, reason, empty = map(question)
            print subject
            print question
            print '1 -', answer1
            print '2 -', answer2
            print reason
            print empty
            subject, question, answer1, answer2, reason, empty = next_block(file)



main()

我一直在查找如何做这个,但完全不知道该怎么开始。当我尝试运行这段代码时,我遇到了以下问题:

AttributeError: 'list' object has no attribute 'splitlines'

我的文本文件格式是这样的:

多项选择题

问题

答案1

答案2

答案3

答案4

正确答案#

对错题

问题

t

f

正确的t或f

原因

重复12次

我在网上搜索了两天,才决定来问这个问题,所以任何帮助都非常感谢。我需要让一个问答游戏随机选择一个问题,无论是对错题还是多项选择题,并且不重复使用同一个问题。

1 个回答

2

已经把文件分成了一个列表:

questions = file.read().split('\n\n')

所以这里的questions就是一个列表。你不能在这里再试着把questions分成一个新的列表:

for question in questions.splitlines():

如果你想把每个单独的问题分成单独的行,可以在循环里这样做:

for question in questions:
    for questionline in question.splitlines()

撰写回答