easygui.msgbox ("Вы ввели" + флейвор) TypeError: должен быть str, а не NoneType
import easygui
flavour = easygui.enterbox('What is your favourite ice cream flavour?')
easygui.msgbox ('You entered ' + flavour)
Что мне делать здесь, чтобы при нажатии кнопки "Отмена" в поле "Ввод" ошибка не возвращалась? В настоящий момент я получаю следующую ошибку: "easygui.msgbox (" Вы ввели "+ флейвор) TypeError: должен быть str, а не NoneType"
2 ответа
Решение
Что происходит, так это msgbox
хочет, чтобы сообщение было строкой. Тем не менее, если вы нажмете кнопку отмены, flavour
это NoneType
объект. Вы можете добавить оператор if, чтобы убедиться, что ваш код не содержит ошибок при нажатии отмены. Сделать что-то вроде:
flavour = easygui.enterbox('What is your favourite ice cream flavour?')
if flavour is not None:
easygui.msgbox ('You entered ' + str(flavour))
else:
pass
Это сделает это
import easygui
while True:
flavour = easygui.enterbox('What is your favourite ice cream flavour?(type quit to quit)')
a = bool(flavour)
if a == False:
easygui.msgbox('you did not enter something')
elif a == True:
if flavour == 'quit':
break
else:
easygui.msgbox ('You entered ' + flavour)
(я могу сделать программу лучше, но больше и больше)