Je travaille sur un projet qui a utilisé une charge de Comment puis-je contribuer à ajouter un général "Hey, cette option n'existe pas" cas semblable à un autre dans un si, elif, elif, ... d'autre code> structures, que j'ai ensuite changées pour des déclarations de type commutateur, comme indiqué
si, elif, sinif, sinon code> déclaration - quelque chose qui est exécuté si aucun de la
si code> s ou
elif code> s faire fonctionner? p>
5 Réponses :
Vous pouvez attraper l'erreur code> KeyError code> qui s'ensuit lorsqu'une valeur n'est introuvable sur la carte et de retourner ou de traiter une valeur par défaut. Par exemple, avec devient ceci: p> , n = 3 code> Ce morceau de code:
'trop grand!' code> est imprimé sur la console. p> p>
Ah, si simple, comment je ne l'ai pas vu en premier lieu! Merci quand même, je suis sûr que quelqu'un d'autre pourrait avoir de l'aide aussi: p
Oh bien sûr. Permettez-moi de l'essayer en premier - je suis un seul homme! : P
Si l'autre n'est vraiment pas une situation exceptionnelle, ne serait-il pas préférable d'utiliser le paramètre facultatif pour obtenir?
>>> choices = {1:'one', 2:'two'} >>> print choices.get(n, 'too big!') >>> n = 1 >>> print choices.get(n, 'too big!') one >>> n = 5 >>> print choices.get(n, 'too big!') too big!
the premier article que vous avez lié à avoir eu Une solution très propre: Ceci appellera prévenir_horrible_crash code> si
réponse code> n'est pas l'un des trois choix énumérés dans
Response_map < / code>. p> p>
Disons que vous avez une fonction F (A, B) et des configurations différentes de paramètres en fonction de la valeur de certaines variables x. Donc, vous voulez exécuter F avec a = 1 et b = 3 si x = 'lundi' et si x = 'samedi' vous voulez exécuter f avec A = 5 et B = 9. Sinon, vous imprimerez que cette valeur de x n'est pas prise en charge.
je ferais p> de cette manière f n'est pas exécuté sur la déclaration de commutateur mais à la dernière ligne. p> p>
Quelques alternatives d'une ligne:
choices = {1:'one', 2:'two'} key = 3 # returns the provided default value if the key is not in the dictionary print(choices[key] if key in choices else 'default_value') # or using the dictionary get() method print(choices.get(key, 'default_value')