No se si soy el único, pero creo que no me quedo clara la diferencia entre else y elif, ¿los dos significan lo mismo?¡

Yulian Arley Montaño Solis

Yulian Arley Montaño Solis

Pregunta
studenthace 5 años

No se si soy el único, pero creo que no me quedo clara la diferencia entre else y elif, ¿los dos significan lo mismo?¡

7 respuestas
para escribir tu comentario
    Moisés Manuel Morín Hevia

    Moisés Manuel Morín Hevia

    studenthace 4 años

    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

    Sergio Daniel Nájera González

    studenthace 5 años

    La principal diferencia de un

    if
    ,
    elif
    (
    else if
    en otros lenguajes de programación) y
    else
    , además de la apariencia y largo del código resultante, es la jerarquía en la que se evalúan las condiciones al ejecutar el programa.

    Cada uno de los

    if
    es independiente del resultado del
    if
    anterior por lo que en tiempo de ejecución se evalúan todos los
    if
    que estén al mismo nivel de indentación (que no estén anidados dentro de otra condicional) sin importar que un
    if
    anterior ya haya cumplido la condición.

    La condición de los

    elif
    depende de un
    if
    anterior por lo que es necesario un
    if
    antes de un
    elif
    , después puede haber tantos
    elif
    como sea necesario. Un
    elif
    es evaluado sólo si el
    if
    ó
    elif
    anterior no cumplió su condición.

    La sentencia

    else
    , que necesita un
    if
    ó
    elif
    antes, solo se ejecuta cuando el
    if
    ó
    elif
    anterior no cumplió su condición. También cierra la sucesión de
    elif
    por lo que ya no puede haber un
    elif
    después de un
    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
    hasta llegar a n incluso si el primer
    if
    fue el que cumplió su condición, además se ejecutará el
    else
    al final porque su
    if
    inmediato, el
    if numero == n:
    , no cumplió su condició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
    no cumplió su condición siendo
    elif numero == 1
    el que sí cumple su condición, dejando sin la necesidad de evaluar el resto de condicionales o al menos hasta llegar a otro
    if
    porque este ya sería independiente al resto de
    elif
    y
    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

    Anthony Smith Quispe De la cruz

    studenthace 5 años

    Sii, yo también lo veo como una abreviación.

    Julio Sarango

    Julio Sarango

    studenthace 5 años

    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

    Anthony Smith Quispe De la cruz

    studenthace 5 años

    De nada compañero!

    Yulian Arley Montaño Solis

    Yulian Arley Montaño Solis

    studenthace 5 años

    Gracias Anthony! Me quedó mucho más claro!

    Anthony Smith Quispe De la cruz

    Anthony Smith Quispe De la cruz

    studenthace 5 años

    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.

Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.

Curso Básico de Python [Empieza Gratis]
Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.