
Yulian Arley Montaño Solis
PreguntaNo se si soy el único, pero creo que no me quedo clara la diferencia entre else y elif, ¿los dos significan lo mismo?¡

Moisés Manuel Morín Hevia
Elif son un monton de if’s & puedes usar tantos como quieras, else es solo al final & significa si nada entra entonces usa esto
Sergio Daniel Nájera González
La principal diferencia de un
if
elif
else if
else
Cada uno de los
if
if
if
if
La condición de los
elif
if
if
elif
elif
elif
if
elif
La sentencia
else
if
elif
if
elif
elif
elif
else
Ejemplo con multiples if:
numero = 0 if numero == 0: print("El número es igual a 0") if numero == 1: print("El número es igual a 1") if numero == 2: print("El número es igual a 2") if numero == 3: print("El número es igual a 3") ... if numero == n: print("El número es igual a n") else: print("El dato ingresado no es un numero")
Al ejecutar el programa se evaluarían cada uno de los
if
if
else
if
if numero == n:
Esto resultando en un programa más lento porque se tienen que hacer n evaluaciones.
Ejemplo con
elif
numero = 1 if numero == 0: print("El número es igual a 0") elif numero == 1: print("El número es igual a 1") elif numero == 2: print("El número es igual a 2") elif numero == 3: print("El número es igual a 3") ... elif numero == n: print("El número es igual a n") else: print("El dato ingresado no es un numero")
Sólo se evaluarán las primeras dos condicionales ya que el primer
if
elif numero == 1
if
elif
else
Esto resultaría en un programa más rápido puesto que haría un menor cantidad de comparaciones o evaluaciones.

Anthony Smith Quispe De la cruz
Sii, yo también lo veo como una abreviación.

Julio Sarango
Para una mejor compresión del elif, yo le vería como una "abreviación" del else if de otros lenguajes como php. La usamos para analizar otras condiciones.

Anthony Smith Quispe De la cruz
De nada compañero!

Yulian Arley Montaño Solis
Gracias Anthony! Me quedó mucho más claro!

Anthony Smith Quispe De la cruz
No significan lo mismo, usas else para denotar una zona de código que se realizará si no se ha cumplido la condición del respectivo if, usas elif para definir una zona que código que se realizará si el anterior if / elif no se ha cumplido y además quieres comprobar una condición, para explicar el origen de elif veamos el siguiente ejemplo, imagina que compruebas si un número recibido es 0 o no:
if numero == 0: print('El numero es 0') else: print('El numero no es 0')
Ahora imagina que te gustaría más comprobaciones respecto al valor del número, imagina que tenemos que comprobar si el número es 0 o 1 o 2 e imprimir un saludo distinto según sea el valor en cuestión y si no fuera ni uno ni dos pues mostrar una despedida, usando bloques else se haría así:
if numero == 0: print('Buenos dias') else: if numero == 1: print('Buenas tardes') else: if numero == 2: print('Buenas noches') else: #En este punto sabemos que no es ni 0 ni 1 ni 2. print('Adios')
Ahora imagina que quisiéramos comprobar si el número es 0, 1, 2, 3, 4 o 5. Eso supondría que tendríamos que hacer varios bloques if-else es ir anidando en las partes del else(en el ejemplo anterior he anidado el segundo if-else dentro del primer else, sucesivamente he anidado el tercer if-else dentro del segundo else).
Usar varias sentencias else es lo que se suele hacer en otros lenguajes(como C o Java), en python han creado una sentencia que junta la palabra else y if para tener un código más claro dando lugar a la sentencia elif que funciona como un else del if respectivo y te permite comprobar una condición(veamos el uso tomando el anterior ejemplo):
if numero == 0: print('Buenos dias') elif numero == 1: print('Buenas tardes') elif numero == 2: print('Buenas noches') else: print('Adios')
¿Ves la diferencia del aspecto del código? Espero que te haya ayudado.