Soy un nuevo programador de Python que está dando el salto de 2.6.4 a 3.1.1. Todo ha ido bien hasta que intenté usar la declaración 'else if'. El intérprete me da un error de sintaxis después del 'if' en 'else if' por una razón que parece que no puedo entender.
def function(a):
if a == '1':
print ('1a')
else if a == '2'
print ('2a')
else print ('3a')
function(input('input:'))
Probablemente me estoy perdiendo algo muy simple; Sin embargo, no he podido encontrar la respuesta por mi cuenta.
python
python-3.x
Paul Turner
fuente
fuente
Respuestas:
En python "else if" se deletrea "elif".
Además, necesita dos puntos después de
elif
y elelse
.Respuesta simple a una pregunta simple. Tuve el mismo problema cuando comencé (en las últimas semanas).
Entonces su código debería leer:
fuente
elsif
, supongo Python tenía que ser un personaje más eficiente. "Elif" parece haberse originado con el preprocesador C, que se usaba#elif
mucho antes de Python AFAICT. Obviamente, en ese contexto, tener una directiva de token único es valioso, ya que analizar#else if <code>
vs#else <code that could theoretically even be an if statement>
habría complicado una sintaxis que pretendía ser simple.Qué quiere decir
elif
?fuente
fuente
desde tiempos antiguos, la sintaxis correcta para
if/else if
en Python eselif
. Por cierto, puedes usar el diccionario si tienes muchoif/else
.egPara msw, ejemplo de ejecución de funciones usando el diccionario.
fuente
elif
.exec
ing ellos. ¿Es esta una buena práctica? ¿Puedes nombrar un ejemplo?<foo>
esdo_foo
, incluso puede construir el dict sobre la marcha cuando se inicia la aplicación..get
método que le permite especificar un valor predeterminado. Su primer ejemplo se puede escribir comoprint d.get(a, "3a")
Aquí hay una pequeña refactorización de su función (no usa "else" o "elif"):
@ ghostdog74: Python 3 requiere paréntesis para "imprimir".
fuente
('1', '2')
, laDebe corregirse a:
Como puede ver, de lo contrario, si se cambia a elif, debería haber dos puntos después de '2' y, de lo contrario, debería haber una nueva línea después de la instrucción else, y cierre el espacio entre print y los paréntesis.
fuente