Je suis un nouveau programmeur Python qui fait le saut de 2.6.4 à 3.1.1. Tout s'est bien passé jusqu'à ce que j'essaie d'utiliser la déclaration «sinon si». L'interprète me donne une erreur de syntaxe après le «si» dans «sinon si» pour une raison que je n'arrive pas à comprendre.
def function(a):
if a == '1':
print ('1a')
else if a == '2'
print ('2a')
else print ('3a')
function(input('input:'))
Il me manque probablement quelque chose de très simple; cependant, je n'ai pas pu trouver la réponse par moi-même.
python
python-3.x
Paul Turner
la source
la source
Réponses:
En python "else if" s'écrit "elif".
De plus, vous avez besoin de deux points après le
elif
et leelse
.Réponse simple à une question simple. J'ai eu le même problème quand j'ai commencé (au cours des deux dernières semaines).
Donc, votre code devrait lire:
la source
elsif
, je suppose que Python devait être que l' un caractère plus efficace. "Elif" semble provenir du préprocesseur C, utilisé#elif
bien avant Python AFAICT. De toute évidence, dans ce contexte, avoir une directive à jeton unique est précieux, car l'analyse#else if <code>
vs.#else <code that could theoretically even be an if statement>
aurait compliqué une syntaxe qui était censée être simple.Tu veux dire
elif
?la source
la source
depuis les temps anciens, la syntaxe correcte pour
if/else if
en Python estelif
. Par ailleurs, vous pouvez utiliser le dictionnaire si vous avez beaucoup deif/else
.egPour msw, exemple d'exécution de fonctions à l'aide d'un dictionnaire.
la source
elif
.exec
ing. Est-ce une bonne pratique? Pouvez-vous citer un exemple?<foo>
estdo_foo
, vous pouvez même créer le dict à la volée au démarrage de l'application..get
méthode qui vous permet de spécifier une valeur par défaut. Votre premier exemple peut être écrit commeprint d.get(a, "3a")
Voici un petit refactoring de votre fonction (il n'utilise pas "else" ou "elif"):
@ ghostdog74: Python 3 nécessite des parenthèses pour "imprimer".
la source
('1', '2')
, l'op utilise des cordesDoit être corrigé en:
Comme vous pouvez le voir, sinon if devrait être changé en elif, il devrait y avoir des deux points après '2' et sinon, il devrait y avoir une nouvelle ligne après l'instruction else, et fermer l'espace entre print et les parenthèses.
la source