确保测验不会问同样的事情两次

时间:2018-07-13 16:19:54

标签: python tkinter

我正在尝试进行python测验,询问25个问题。我使用字典来保存问题,并带有键。我使用random.randint()函数从字典中选择一个随机问题,而我的目标是,一旦问题被回答,便从字典中删除问题,以使其不再被回答。我没有编码逻辑来决定答案是否正确。这是重要的代码:

SELECT 
    dtc.coupon_type_company_name,  
    COUNT(*) * dtc.coupon_type_company_coupon_amount AS 'Total_Coupon_To_Be_Used',
    dtc.coupon_type_company_coupon_months_combinable
FROM 
    [dbo].[coupon_type_Company_User] dtcu
JOIN 
    coupon_type_Company dtc ON dtcu.coupon_type_Company_ID = dtc.id
JOIN 
    person p ON dtcu.userID = p.userID
WHERE 
    coupon_type_company_coupon_is_combinable = 1 
    OR coupon_type_company_has_coupon = 1 
    AND dtc.companyID = 1081
    AND p.is_active = 1
GROUP BY
    dtc.coupon_type_company_name,dtc.coupon_type_company_coupon_amount,
    dtc.coupon_type_company_coupon_months_combinable

我应该如何编辑代码,以便在问到问题时不再被问到?

如果有人需要,这里是完整的代码:

count(*)*dtc.coupon_type_company_coupon_amount

1 个答案:

答案 0 :(得分:0)

您要问两个完全不同的问题。在这个网站上这是错误的。您应该另外提出两个问题。

您可以使用del从字典中删除问题

del questions[chosen_question]

您也不需要自己保留问题的数量,因为您可以随时在字典中使用len()函数:

len(questions)

要生成随机问题,而不管字典中还有哪些数字,可以使用random.choice代替randint

chosen_question = random.choice(questions)

对于您的标签,您需要一个StringVar对其进行编辑。一次创建标签

v = StringVar()
random_question = Label(root, bg="white", 
     textvariable=v, font=('Courier', 13))

然后您可以随时设置文本

v.set(questions[chosen_question])