如何让随机问题不再出现?

How do I get the random question to not appear again?

我似乎无法解决如何让我的问题在显示一次后不再出现... 有人知道吗?

import random
from turtle import *
import time

def reset(x, y):
    print("Körs")
    clearscreen()

    # Här gör man det enklare för sig själv genom att kategorisera turtles.
    #Turtle()

    # Här väljer man vilken fart turtles skall ha när dom ritar
    speed(10)

    # här göms alla turtles
    hideturtle()

    # Här skriver man vad programmet heter och vilken färg bakgrunden har.
    title('Albins ofungerade spel')
    Screen().bgcolor("orange")

    quest = ('Courier', 15, 'italic')
    main = ('Courier', 25, 'italic')

    frågor = [1, 2, 3, 4, 5]

    computer_action = random.choice(frågor)

    # här ritas alla olika boxar och sidor
    l = 300
    w = 75

    penup()
    goto(-150, 100)
    pendown()

    forward(l)
    left(90)

    forward(w)
    left(90)

    forward(l)
    left(90)

    forward(w)
    left(90)

    penup()
    goto(-150, 0)
    pendown()

    forward(l)
    left(90)

    forward(w)
    left(90)

    forward(l)
    left(90)

    forward(w)
    left(90)

    penup()
    goto(-150, -100)
    pendown()

    forward(l)
    left(90)

    forward(w)
    left(90)

    forward(l)
    left(90)

    forward(w)
    left(90)

    penup()
    goto(-150, -200)
    pendown()

    forward(l)  # Forward turtle by l units
    left(90)  # Turn turtle by 90 degree

    forward(w)  # Forward turtle by w units
    left(90)  # Turn turtle by 90 degree

    forward(l)  # Forward turtle by l units
    left(90)  # Turn turtle by 90 degree

    forward(w)  # Forward turtle by w units
    left(90)  # Turn turtle by 90 degree

    def good():
        penup()
        setposition(0, -280)
        pendown()
        write("Rätt val! Tryck på skärmen för ny fråga", font=main, align='center')
        onscreenclick(reset)


    def bad():
        penup()
        setposition(0, -280)
        pendown()
        write("Fel val! Tryck på skärmen för ny fråga", font=main, align='center')
        onscreenclick(reset)



    if computer_action == 1:


        penup()
        setposition(0, 130)
        pendown()
        write("A. Danmark", font=quest, align='center')

        penup()
        setposition(0, 30)
        pendown()
        write("B. Sverige", font=quest, align='center')

        penup()
        setposition(0, -70)
        pendown()
        write("C. Finland", font=quest, align='center')

        penup()
        setposition(0, -170)
        pendown()
        write("D. Norge", font=quest, align='center')

        penup()
        setposition(0, 250)
        pendown()
        write("Vad heter det största landet i Norden?", font=main, align='center')

        onkeypress(good, 'b')
        onkeypress(bad, 'd')
        onkeypress(bad, 'c')
        onkeypress(bad, 'a')
        listen()



    elif computer_action == 2:

        penup()
        setposition(0, 130)
        pendown()
        write("A. Java", font=quest, align='center')

        penup()
        setposition(0, 30)
        pendown()
        write("B. C++", font=quest, align='center')

        penup()
        setposition(0, -70)
        pendown()
        write("C. Python", font=quest, align='center')

        penup()
        setposition(0, -170)
        pendown()
        write("D. LUA", font=quest, align='center')

        penup()
        setposition(0, 250)
        pendown()
        write("Vad är William och Svens favorit språk?", font=main, align='center')

        onkeypress(good, 'd')
        onkeypress(bad, 'a')
        onkeypress(bad, 'c')
        onkeypress(bad, 'b')
        listen()

    elif computer_action == 3:

        penup()
        setposition(0, 130)
        pendown()
        write("A. Fredrik Reignfeldt", font=quest, align='center')

        penup()
        setposition(0, 30)
        pendown()
        write("B. Magdalenda Andersson", font=quest, align='center')

        penup()
        setposition(0, -70)
        pendown()
        write("C. Sven Blomqvist", font=quest, align='center')

        penup()
        setposition(0, -170)
        pendown()
        write("D. Martin Nilsson", font=quest, align='center')

        penup()
        setposition(0, 250)
        pendown()
        write("Vad heter Sveriges statsminister?", font=main, align='center')

        onkeypress(good, 'b')
        onkeypress(bad, 'a')
        onkeypress(bad, 'c')
        onkeypress(bad, 'd')
        listen()

    elif computer_action == 4:

        penup()
        setposition(0, 130)
        pendown()
        write("A. Joe Biden", font=quest, align='center')

        penup()
        setposition(0, 30)
        pendown()
        write("B. Bill Clinton", font=quest, align='center')

        penup()
        setposition(0, -70)
        pendown()
        write("C. Donald Trump", font=quest, align='center')

        penup()
        setposition(0, -170)
        pendown()
        write("D. Albin Winqvist", font=quest, align='center')

        penup()
        setposition(0, 250)
        pendown()
        write("Vad heter USA's president?", font=main, align='center')

        onkeypress(good, 'a')
        onkeypress(bad, 'd')
        onkeypress(bad, 'c')
        onkeypress(bad, 'b')
        listen()

    elif computer_action == 5:

        penup()
        setposition(0, 130)
        pendown()
        write("A. Borgarskolan", font=quest, align='center')

        penup()
        setposition(0, 30)
        pendown()
        write("B. Procivitas", font=quest, align='center')

        penup()
        setposition(0, -70)
        pendown()
        write("C. Bernadottegymnasiet", font=quest, align='center')

        penup()
        setposition(0, -170)
        pendown()
        write("D. Pauliskolan", font=quest, align='center')

        penup()
        setposition(0, 250)
        pendown()
        write("Vad är Malmös bästa skola?", font=main, align='center')

        onkeypress(good, 'c')
        onkeypress(bad, 'a')
        onkeypress(bad, 'd')
        onkeypress(bad, 'b')
        listen()








    onscreenclick(reset)


onscreenclick(reset)
done()

很抱歉,如果我的代码看起来草率或类似的问题,但我只需要帮助如何使出现一次的问题不再出现。 我知道 turtle 可能不是最好的,但这是我在做这个简单项目时唯一能想到的。 感谢我得到的任何帮助,这意义重大!

很确定你必须说 computer_action=0 如果你想结束或更改 0 为另一个数字如 3 以继续你的问题

如果computer_action == 1:

penup()
setposition(0, 130)
pendown()
write("A. Danmark", font=quest, align='center')

penup()
setposition(0, 30)
pendown()
write("B. Sverige", font=quest, align='center')

penup()
setposition(0, -70)
pendown()
write("C. Finland", font=quest, align='center')

penup()
setposition(0, -170)
pendown()
write("D. Norge", font=quest, align='center')

penup()
setposition(0, 250)
pendown()
write("Vad heter det största landet i Norden?", font=main, align='center')

onkeypress(good, 'b')
onkeypress(bad, 'd')
onkeypress(bad, 'c')
onkeypress(bad, 'a')
listen()
computer_action=0

虽然我不确定

取这行代码:

frågor = [1, 2, 3, 4, 5]

...并将其放在 reset() 函数之外 - 即放入全局 space

那么...

computer_action = random.choice(frågor)
frågor.remove(computer_action)

换句话说,您从列表中随机选择,然后删除您选择的任何内容。

问题是您只能执行 len(frågor) 次。你需要弄清楚如何应对这种可能性

reset 函数之外定义初始 frågor。然后像下面这样修改你的 computer-action

frågor = [1, 2, 3, 4, 5]
def reset(x, y):
    #.... 
    random.shuffle(frågor)
    computer_action = frågor.pop()
     

pop returns 列表的最后一个元素 frågor 并将其从列表中删除。所以它永远不能重复。

小提示:避免在变量中使用像 å 这样的特殊字符。当您的文件编码更改时可能会导致问题。