Je suis un nouveau programmeur Python qui passe de 2.6.4 à 3.1.1. Tout s'est bien passé jusqu'à ce que j'essaye d'utiliser l'expression 'else if'. L'interprète me donne une erreur de syntaxe après le 'if' dans 'else if' 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:'))
Je manque probablement quelque chose de très simple; Cependant, je n'ai pas été capable de trouver la réponse par moi-même.
En python _ "else if" est orthographié "Elif".
De plus, vous avez besoin de deux points après le Elif
et le else
.
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 se lire comme suit:
def function(a):
if a == '1':
print('1a')
Elif a == '2':
print('2a')
else:
print('3a')
function(input('input:'))
Voulez-vous dire Elif
?
def function(a):
if a == '1':
print ('1a')
Elif a == '2':
print ('2a')
else:
print ('3a')
depuis des temps anciens, la syntaxe correcte pour if/else if
dans Python est Elif
. En passant, vous pouvez utiliser le dictionnaire si vous avez beaucoup de if/else
.
d={"1":"1a","2":"2a"}
if not a in d: print("3a")
else: print (d[a])
Pour msw, exemple d'exécution de fonctions à l'aide de dictionnaire.
def print_one(arg=None):
print "one"
def print_two(num):
print "two %s" % num
execfunctions = { 1 : (print_one, ['**arg'] ) , 2 : (print_two , ['**arg'] )}
try:
execfunctions[1][0]()
except KeyError,e:
print "Invalid option: ",e
try:
execfunctions[2][0]("test")
except KeyError,e:
print "Invalid option: ",e
else:
sys.exit()
Voici un petit refactoring de votre fonction (il n'utilise pas "else" ou "Elif"):
def function(a):
if a not in (1, 2):
a = 3
print(str(a) + "a")
@ ghostdog74: Python 3 nécessite des parenthèses pour "imprimer".
def function(a):
if a == '1':
print ('1a')
else if a == '2'
print ('2a')
else print ('3a')
Devrait être corrigé pour:
def function(a):
if a == '1':
print('1a')
Elif a == '2':
print('2a')
else:
print('3a')
Comme vous pouvez le constater, sinon, si devrait être remplacé par Elif, il devrait y avoir des deux-points après le '2' et sinon, il devrait y avoir une nouvelle ligne après l'instruction else, et fermer l'espace entre l'impression et les parenthèses.