如何在python中删除变量中的整数值

如何在python中删除变量中的整数值,python,Python,我目前正在创建一个关于python的测验程序。通过random.choice选择每个问题后,我希望程序从列表中删除此问题,这样就不能再问两次。但程序不会删除问题编号,因此仍可再次选择。这是我的密码: questionNumbers = [1,2] questionChosen = random.choice(questionNumbers) if questionChosen == 1: del questionNumbers[questionNumbers.in

我目前正在创建一个关于python的测验程序。通过random.choice选择每个问题后,我希望程序从列表中删除此问题,这样就不能再问两次。但程序不会删除问题编号,因此仍可再次选择。这是我的密码:

questionNumbers = [1,2]
    questionChosen = random.choice(questionNumbers)
    if questionChosen == 1:
        del questionNumbers[questionNumbers.index(questionChosen)]
        q1 = "Who is John Von Neumann?"
        print(q1)

任何帮助都将不胜感激。

最好的方法是使用
随机。在原始列表上随机移动
以更改项目位置。然后
pop
打开它们,直到列表中没有更多的项目

例如:

import random

questionNumbers = [1,2,3,4]

random.shuffle(questionNumbers)
while questionNumbers:
    print(questionNumbers.pop())
每次都以随机顺序打印
1,2,3,4

列表中以元组形式包含问题和答案的更详细示例:

import random

questionNumbers = [("who killed Kennedy","Lee Harvey Oswald"),("Who starred in XXX","Vin Diesel")]  # sorry for the bad Q&A

random.shuffle(questionNumbers)
while questionNumbers:
    q,a = questionNumbers.pop()
    print("right" if input("{} ?".format(q))==a else "wrong")

最好的方法是使用原始列表上的
random.shuffle
来更改项目位置。然后
pop
打开它们,直到列表中没有更多的项目

例如:

import random

questionNumbers = [1,2,3,4]

random.shuffle(questionNumbers)
while questionNumbers:
    print(questionNumbers.pop())
每次都以随机顺序打印
1,2,3,4

列表中以元组形式包含问题和答案的更详细示例:

import random

questionNumbers = [("who killed Kennedy","Lee Harvey Oswald"),("Who starred in XXX","Vin Diesel")]  # sorry for the bad Q&A

random.shuffle(questionNumbers)
while questionNumbers:
    q,a = questionNumbers.pop()
    print("right" if input("{} ?".format(q))==a else "wrong")

您可以使用
list.remove(项目)
从列表中删除项目

import random

questionNumbers = [1,2]
questionChosen = random.choice(questionNumbers)
if questionChosen == 1:
    questionNumbers.remove(questionChosen)
    q1 = "Who is John Von Neumann?"
    print(q1)

您可以使用
list.remove(项目)
从列表中删除项目

import random

questionNumbers = [1,2]
questionChosen = random.choice(questionNumbers)
if questionChosen == 1:
    questionNumbers.remove(questionChosen)
    q1 = "Who is John Von Neumann?"
    print(q1)

我建议不要显式地从列表中删除,实际上很少使用del。最好先弄清楚要循环哪些内容,然后再循环列表。您可以使用
random
模块中的
shuffle
对问题编号进行随机排序,然后只需在无序列表中循环:

from random import shuffle

x = [1,2,3,4]
shuffle(x)

for q_num in x:
    print(q_num)

我建议不要显式地从列表中删除,实际上很少使用del。最好先弄清楚要循环哪些内容,然后再循环列表。您可以使用
random
模块中的
shuffle
对问题编号进行随机排序,然后只需在无序列表中循环:

from random import shuffle

x = [1,2,3,4]
shuffle(x)

for q_num in x:
    print(q_num)