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»


person sleepylog    schedule 21.03.2017    source источник


Ответы (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
person MattR    schedule 13.04.2017

это сделает это

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)

(я могу сделать программу лучше, но больше и больше)

person Haoyang Song    schedule 01.03.2018