首页 > 解决方案 > 某些用户输入第一次工作正常,第二次遇到异常

问题描述

编辑:我发现了问题。在某些时候,即使我的列表有浮点数,我的代码也会要求整数。我将 int 更改为 float,它现在似乎正在工作。

我提前为错误道歉,英语不是我的母语。

我对编码(Python 3.x)非常陌生,并试图编写一个非常简单的基于文本的游戏只是为了好玩。

它的工作方式是将 csv 文件复制到列表中。

文件格式为:no., question, answer1, answer2, reply1, reply2, element1, element2, value_element1, value_element2, next_question1, next_question2

标题后面的 1 代表发生的值和操作,如果您选择答案 1,答案 2 也是如此。

我通过放置一个 while True >> try 循环来请求输入。我的问题是,一旦我到达第二个问题,如果我输入 2. 1 就不会再接受我的输入了。

如果这不是足够的信息,我很抱歉。我将在这里放一部分代码以及 .py 文件的下载链接。

任何帮助,将不胜感激

循环:

def quiz():
    global next_q
    global health
    print("\n{}".format(events[int(next_q)][1]))
    options = "\n(1) {} | (2) {}\n\n> ".format(events[int(next_q)][2], events[int(next_q)][3])
    while True:
        try:
            answer = int(input(options))
            print(answer)
            print(type(answer))
            if answer == 1:
                print(events[int(next_q)][4])
                if events[int(next_q)][6] == "health":
                    pre_health = health
                    health += int(events[int(next_q)][8])
                    print("\n\n\nHP: {} >>> {}.\n".format(pre_health, health))
                next_q = events[int(next_q)][10]
                break
            elif answer == 2:
                print(events[int(next_q)][5])
                if events[int(next_q)][7] == "health":
                    pre_health = health
                    health += int(events[int(next_q)][9])
                    print("\n\n\nHP: {} >>> {}.\n".format(pre_health, health))
                next_q = events[int(next_q)][11]
                break
            elif answer == 0:
                next_q = events[int(next_q)][0]
                reset(next_q)
                print("\nAuf Wiedersehen!")
                quit()
            else:
                raise ValueError
        except ValueError:
            print("\nBitte gebe 1 oder 2 ein.")
    quiz()

代码的下载链接,csv。文件和 save.txt 文件,保存进度并在开始游戏时加载:https ://www.mediafire.com/file/817ud3y725zsx55/OneDrive_1_22.6.2021.zip/file

标签: pythonpython-3.xloopsinputuser-input

解决方案


推荐阅读