import easygui

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

easygui.msgbox ('You entered ' + flavour)

Что мне здесь делать, чтобы при нажатии кнопки «Отмена» в поле «Ввод» ошибка не возвращалась? В настоящий момент я получаю следующую ошибку: «easygui.msgbox (« Вы ввели »+ флейвор) TypeError: должен быть str, а не NoneType»

0
sleepylog 21 Мар 2017 в 09:23

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
0
MattR 13 Апр 2017 в 12:55

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

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)

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

1
Haoyang Song 1 Мар 2018 в 03:25