easygui.msgbox ('You entered ' + flavour) TypeError: must be str, not NoneType

easygui.msgbox ('You entered ' + flavour) TypeError: must be str, not NoneType

import easygui

flavour = easygui.enterbox('What is your favourite ice cream flavour?')

easygui.msgbox ('You entered ' + flavour)

我该怎么做才能在 'enter' 框上点击 'cancel' 按钮时不会 return 出错?目前我收到以下错误: “easygui.msgbox('You entered ' + 味道) TypeError: 必须是 str,而不是 NoneType

发生的事情是 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)

(我可以把程序做得更好但是越来越大)