Я хотел бы иметь вывод на экран easyGUI multchoicebox на основе сделанного правильного выбора. Следующее не работает (т.е. не показывает «правильно»)
import easygui
fieldnames = ["Incorrect", "Correct", "Also Correct"]
choice = easygui.multchoicebox("Pick an option.", "", fieldnames)
if choice == fieldnames[1] and fieldnames[2]:
easygui.msgbox('Correct!')
else:
easygui.msgbox('Incorrect')
#Also tried:
#if choice == "Correct" and "Also Correct":
if choice == fieldnames[1] and fieldnames[2]:
такой же как
if (choice == fieldnames[1]) and fieldnames[2]:
это означает, что он проверит, соответствует ли choice
fieldnames[1]
и является ли fieldnames[2]
«правдивым». (Что должно быть True
, если вы выберете «Правильно»).
Вероятно, вы хотели проверить:
if choice in ( fieldnames[1], fieldnames[2] ):
Вы можете использовать оператор «in», чтобы проверить, выбрано ли желаемое поле пользователем.
Затем, чтобы применить логику к обоим выбранным значениям, просто добавьте «и».
Вот исправленный и проверенный код:
import easygui
fieldnames = ["Incorrect", "Correct", "Also Correct"]
choice = easygui.multchoicebox("Pick an option.", "", fieldnames)
if fieldnames[1] in choice and fieldnames[2] in choice:
easygui.msgbox('Correct!')
else:
easygui.msgbox('Incorrect')
Рад помочь, @JohnCollins!