2017-03-21 3 views
0
import easygui 

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

easygui.msgbox ('You entered ' + flavour) 

Que dois-je faire ici pour que quand je frappe le bouton « Annuler » sur la « entrée » boîte, il ne renvoyer une erreur? En ce moment, je reçois l'erreur suivante: « easygui.msgbox (« Vous avez entré » + saveur) TypeError: doit être str, non NoneType »easygui.msgbox (« Vous avez entré » + saveur) TypeError: doit être str, pas NoneType

Répondre

0

Ce qui se passe est que msgbox veut que le message soit chaîne. Toutefois, si vous cliquez sur Annuler, flavour est un objet NoneType. Vous pouvez ajouter une instruction if pour vous assurer que votre code ne génère pas d'erreur si vous cliquez sur annuler. Faites quelque chose comme:

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

if flavour is not None: 
    easygui.msgbox ('You entered ' + str(flavour)) 
else: 
    pass 
0

ce fera

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) 

(je peux faire le meilleur programme, mais plus grand et plus)