#python #loops #tkinter #conditional-statements
#python #циклы #tkinter #условные операторы
Вопрос:
Я создал цикл while for, который должен проверять, содержит ли запись 2, 3 или 4 в нем. Когда я попробовал цикл без поля ввода tkinter, он зациклился и остановился по мере необходимости. Когда я включил его в запись tkinter, он бесконечно зацикливается. Я совсем новичок в python tkinter и пытаюсь создать работающую систему.
Уже пробовал цикл без записи tkinter. Я исследовал уже несколько часов.
from tkinter import *
def sentence():
global text
text = musicEntry.get()
musicEntry.delete(0,END)
countIt = 0
while countIt == 0:
for line in text:
if line in "2" or line in "3" or line in "4":
countIt = 1
messagebox.showinfo("All is well. Please press the SUBMIT button to continue")
break
else:
print("This doesn't work")
def checkPass():
global musicEntry
enterText = Tk()
enterText.title ("Welcome to music chooser")
Label(enterText, text = "Please enter the music text", bg="black", fg="white", font="none 12 bold") .grid(row=7, column = 0, sticky=W)
#Create a text entry box for music level
musicEntry = Entry(enterText, width=75, bg="white")
musicEntry.grid(row=8, column=0, sticky=W)
validateButton = Button(enterText, text="Validate", width=6, command=sentence) .grid(row=9, column=0, sticky=W)
checkPass()
Я ожидаю, что проверка отловит недостающие 2, 3 или 4 при выполнении else, чтобы затем у меня мог быть messagebox для пользователя.
Комментарии:
1.
line in "2"
верно ровно для двух возможных значенийline
:""
и"2"
. Единственное мыслимое значение, которое одновременно было быin "2"
,in "3"
иin "4"
, — это пустая строка. Вы, вероятно, хотите использовать"2" in line
вместо этого.2. Выбросьте свой цикл , сделайте
if text and text in '234':
3. Я пробовал оба способа. Изменение 2 в строке, 3 в строке и 4 в строке дает тот же результат — непрерывный вывод «Это не работает». Затем я попробовал текст if и текст в ‘234’, и это дает непрерывный вывод для правильного и неправильного ввода.
4. Я решил это. Я не завершал цикл в инструкции else.