我有一个字典,其中包含一些我想问的问题,键的范围是1到7。我还有一个包含以下元素的列表:[1, 2, 3, 4, 5, 6, 7]
,它表示要使用的键用在字典中,我将列表随机化,以便随机提问。但是,一旦提出问题,我就希望从列表中删除第一个元素,这样就不再需要再次提出该问题,从而最终不存在任何问题(要删除的元素的实际内容)每次都会有所不同),但是每当我运行代码时,列表的大小便保持不变
def random_function():
questions = {
1: "Describe what the instruction 'BRP' does.",
2: "Describe what is meant by the term 'Open Source Software'.",
3: "What is meant by the term 'Lossy Compression'?",
4: "What is the number '55' as an 8-bit unsigned integer?",
5: "What might a printer use RAM for?",
6: "Describe the term 'firewall'.",
7: "Describe the Rapid Application Development process."
}
random_list = [1, 2, 3, 4, 5, 6, 7]
random.shuffle(random_list)
question = Label(root, bg="white", text=questions[random_list[0]], font = ("Segoe UI", 14))
question.place(x=20, y=20)
print(random_list) #just to troubleshoot
del(random_list[0])
root_win2()
def root_win2():
global question, random_list, questions
next_button = Button(text="Next Question", command=random_function, height=3, width=12)
next_button.place(x=370, y=300)
(请注意,首先运行root_win2()函数,然后再跳转到random_function()函数,然后再跳回到root_win2()函数,等等。)
我在这里做错什么了吗?
答案 0 :(得分:1)
您需要将random_list
保留在从其中删除项目的功能random_function
之外。
答案 1 :(得分:0)
随机函数中没有循环,因此您每次都要创建列表,删除第一个值,然后再次创建。
答案 2 :(得分:0)
乍一看,似乎每次您调用“ random_function()”时,您都在将random_list声明为[1、2、3、4、5、6、7]。
可能想将random_list =移动到该函数的[1,2,3,4,5,6,7] 外部,并将其全局设置为快速解决方案,以便在您再次调用它时,您没有声明相同的初始数组。