Tutorial de Python para principiantes absolutos

    Python es uno de los lenguajes m谩s utilizados que existen. Ya sea desarrollo web, aprendizaje autom谩tico e inteligencia artificial, o incluso programaci贸n de microcontroladores, Python ha encontrado su lugar en casi todas partes.

    Este art铆culo proporciona una breve introducci贸n a Python para principiantes en el idioma. El art铆culo est谩 dirigido a principiantes absolutos sin experiencia previa en Python, aunque algunos conocimientos previos de programaci贸n ayudar谩n, pero no son necesariamente necesarios.

    Descubr铆 que la mejor manera de aprender es tratar de comprender la teor铆a y luego implementar el ejemplo por tu cuenta. Recuerde, 隆no mejorar谩 en la programaci贸n a menos que la practique!

    El art铆culo se divide en las siguientes secciones:

    • Por qu茅 aprender Python
    • Instalaci贸n y configuraci贸n
    • Ejecutando su primer programa
    • Variables de Python
    • Operadores en Python
    • Declaraciones condicionales
    • Bucles
    • Listas, tuplas y diccionarios
    • Aplicaci贸n de ejemplo
    • Que sigue

    Por qu茅 aprender Python

    Aqu铆 surge la pregunta de por qu茅 deber铆a aprender Python. Hay muchos otros lenguajes de programaci贸n; incluso podr铆a haber aprendido algunos de ellos. Entonces, 驴por qu茅 Python, qu茅 tiene de especial? Hay varias razones para aprender Python, las m谩s importantes de las cuales se enumeran a continuaci贸n.

    • F谩cil de aprender

      Python se considera uno de los lenguajes m谩s aptos para principiantes. La sintaxis de Python es la m谩s simple de todas. No es necesario que aprenda los tipos de variables complejas, el uso de corchetes para agrupar bloques de c贸digo, etc. Python se basa en el principio fundamental de ser amigable para los principiantes.

    • Muy demandado

      Seg煤n una encuesta reciente de Indeed.com, los desarrolladores de Python son los segundos desarrolladores mejor pagados de EE. UU. El enorme potencial laboral de Python se puede estimar por el hecho de que en 2014 la tasa de contrataci贸n promedio de programadores disminuy贸 en un 5%, pero los desarrolladores de Python a煤n vieron un aumento del 8.7%.

    • Ideal para desarrollo web

      Python es incre铆blemente r谩pido en comparaci贸n con otros lenguajes de desarrollo web como PHP y ASP.NET. Adem谩s, Python tiene innumerables marcos de trabajo incre铆bles como Django, Flask y Pylons, lo que hace que el desarrollo web sea a煤n m谩s simple. Los sitios web como Instagram, Pinterest y The Guardian se basan en el popular marco de Django.

    • Se usa mucho para el aprendizaje autom谩tico y la inteligencia artificial

      Python es el lenguaje m谩s utilizado para operaciones de inteligencia artificial y aprendizaje autom谩tico. Las bibliotecas de Python como TensorFlow y scikit-learn hacen que las tareas de IA sean mucho m谩s simples en comparaci贸n con MATLAB o R, que anteriormente era el entorno m谩s utilizado para tareas de ciencia de datos y IA.

    • Funciona con Raspberry Pi

      Python es el lenguaje de programaci贸n m谩s popular para Raspberry Pi, que es una microcomputadora de bolsillo que se utiliza en una amplia gama de aplicaciones como robots, consolas de juegos y juguetes. En resumen, aprenda Python si desea construir cosas con Raspberry Pi.

    • Querida corporativa

      No ser铆a exagerado decir que Python es el favorito de todas las grandes empresas corporativas como google, yahoo, NASA, Disney, IBM, etc. Estas empresas han incorporado Python en el n煤cleo de muchas de sus aplicaciones.

    • Comunidad grande

      Python tiene una de las comunidades de programaci贸n m谩s grandes en l铆nea y contin煤a creciendo. Python tiene la quinta comunidad de Stack Overflow m谩s grande y la tercera comunidad de reuniones m谩s grande. Y lo m谩s importante, es el cuarto lenguaje m谩s utilizado en GitHub, lo que significa que hay toneladas de c贸digo existente para aprender.

    Instalaci贸n y configuraci贸n

    Aunque hay varias formas de instalar Python para Windows, pero por el bien de este art铆culo usaremos Anaconda . Sin duda, es el entorno de Python m谩s utilizado en este momento. Para descargar Anaconda, vaya a este enlace:

    https://www.anaconda.com/download/

    Despl谩cese hacia abajo un poco y deber铆a ver las opciones de descarga. Seleccione, Python 3.6 como se muestra en la siguiente captura de pantalla:

    Esto descargar谩 un instalador de Anaconda en su computadora. Abra el instalador y ver谩 las siguientes opciones:

    Siga estos pasos para la instalaci贸n

    • Haga clic en el bot贸n “Siguiente”. Aparecer谩n los t茅rminos y condiciones, puede leerlos si tiene tiempo suficiente, pero puede hacer clic en “Acepto” de todos modos.
    • En la siguiente ventana, seleccione el tipo de instalaci贸n que desea. Si eres un principiante absoluto en Python, te recomendar铆a seleccionar la opci贸n “Solo yo”.
    • A continuaci贸n, seleccione la carpeta de instalaci贸n (la opci贸n predeterminada es la mejor).
    • Aparecer谩 el cuadro de di谩logo de opciones avanzadas, mantenga la primera opci贸n sin marcar y la segunda marcada y haga clic en “Instalar”. Esto se muestra en la siguiente captura de pantalla.

    Ahora si茅ntese y tome un caf茅, la instalaci贸n puede llevar alg煤n tiempo.

    Una vez que se complete la instalaci贸n, ver谩 el mensaje:

    Haga clic en “Siguiente” y luego en el bot贸n “Finalizar” en el cuadro de di谩logo siguiente para completar la instalaci贸n.

    Ejecutando su primer programa

    Aunque tambi茅n puede ejecutar programas de Python a trav茅s de la l铆nea de comandos, generalmente es mejor para los principiantes usar un editor de texto. Afortunadamente, con la instalaci贸n de Anaconda, tambi茅n se instala el Jupyter Notebook . El “Jupyter Notebook” es una aplicaci贸n basada en la nube que permite a los usuarios crear, compartir y administrar sus documentos. Usaremos Jupyter para escribir nuestro c贸digo Python en este art铆culo.

    Para abrir Jupyter, puede ir al men煤 Inicio y buscar la aplicaci贸n “Jupyter Notebook”. Tambi茅n puede buscarlo en Aplicaciones. Esto se muestra a continuaci贸n:

    Abra la aplicaci贸n “Jupyter Notebook”. Luego se abrir谩 en su navegador predeterminado. Por compatibilidad, le recomendar铆a que use Google Chrome como su navegador predeterminado, pero otros tipos de navegadores como Firefox tambi茅n funcionar铆an.

    Cuando la aplicaci贸n se abra en su navegador, ver谩 la siguiente p谩gina:

    En el lado derecho de la p谩gina, ver谩 la opci贸n “Nuevo”. Haga clic en ese bot贸n y aparecer谩 una lista desplegable. Seleccione “Python 3” de la lista desplegable. Esto abrir谩 un nuevo cuaderno para usted, que se ve as铆:

    Aqu铆 puede escribir, guardar y compartir f谩cilmente su c贸digo Python.

    Probemos y asegur茅monos de que todo funciona bien. Para hacer esto, crearemos un programa simple que imprime una cadena en la pantalla.

    Ingrese el siguiente c贸digo en el campo de texto de su cuaderno Jupyter (que se muestra en la captura de pantalla anterior):

    print("Welcome to Python!")
    

    El printhace exactamente lo que parece, simplemente imprime un texto en la pantalla. El texto que desea mostrar se ingresa entre comillas dobles dentro del par茅ntesis que siguen a la printpalabra clave.

    Para ejecutar c贸digo en “Jupyter Notebook”, simplemente presione “Ctrl + Enter”. La salida del c贸digo anterior deber铆a tener el siguiente aspecto:

    Y ah铆 lo tienes, 隆hemos ejecutado con 茅xito nuestro primer programa Python! En las siguientes secciones, continuaremos usando Jupyter para ense帽ar y discutir algunas caracter铆sticas centrales de Python, comenzando con las variables.

    Variables de Python

    En pocas palabras, las variables son ubicaciones de memoria que almacenan algunos datos. Puede utilizar variables para almacenar un valor, ya sea un n煤mero, texto o un valor booleano (verdadero / falso). Cuando necesite usar ese valor nuevamente m谩s adelante en su c贸digo, simplemente puede usar la variable que contiene ese valor. Casi puede pensar en ellos como simples contenedores que almacenan cosas para usted para su uso posterior.

    Es importante mencionar aqu铆 que, a diferencia de Java, C ++ y C #, Python no es un lenguaje fuertemente tipado . Esto significa que no es necesario especificar el tipo de variable de acuerdo con el valor que tiene. Python decodifica impl铆citamente el tipo de variable en tiempo de ejecuci贸n, dependiendo del tipo de datos almacenados en 茅l. Por ejemplo, no es necesario especificar la int n = 10definici贸n de una variable entera denominada “n”. En Python simplemente escribimos n = 10y el tipo de variable “n” se entender谩 impl铆citamente en tiempo de ejecuci贸n.

    Hay cinco tipos de datos centrales diferentes en Python:

    • N煤meros
    • Instrumentos de cuerda
    • Lista
    • Tuplas
    • Diccionarios

    En esta secci贸n solo veremos n煤meros y cadenas. Las listas, tuplas y diccionarios se explicar谩n con m谩s detalle en sus respectivas secciones m谩s adelante en este art铆culo.

    N煤meros

    El tipo de n煤mero de variables almacena datos num茅ricos. Eche un vistazo al siguiente ejemplo simple:

    num1 = 2
    num2 = 4
    result = num1 + num2
    print(result)
    

    Aqu铆 en el ejemplo anterior tenemos dos variables num茅ricas, num1y num2ambas contienen algunos datos num茅ricos. Hay una tercera variable de tipo num茅rico result, que contiene el resultado de la suma de los valores almacenados en num1y las num2variables. Finalmente, en la 煤ltima l铆nea resultse imprime la variable en la pantalla.

    La salida ser谩 la siguiente:

    Hay cuatro tipos de datos num茅ricos diferentes en Python:

    • Enteros, como n煤meros enteros reales: 10
    • Enteros largos, que tienen “L” al final para valores: 1024658L
      • Estos tambi茅n se pueden usar en forma hexadecimal y octal
    • Datos de coma flotante, que son n煤meros expresados 鈥嬧媏n decimales: 3.14159
    • Datos complejos, que se utilizan para representar tipos de n煤meros complejos: 2 + 3j

    Instrumentos de cuerda

    Las cadenas se utilizan para almacenar datos de texto en Python. Eche un vistazo al siguiente ejemplo:

    fname = "Adam"
    sname = " Grey"
    fullname = fname + sname
    
    print(fullname)
    

    En el ejemplo anterior tenemos dos variables de cadena: fnamey sname. Estos almacenan el nombre y apellido de alguna persona. Para combinar estas dos cadenas podemos usar el operador “+” en Python. Aqu铆 nos estamos uniendo el fnamey snamelas variables y almacenar la cadena resultante en la fullnamevariable. Luego imprimimos la fullnamevariable en la pantalla.

    El resultado es el siguiente:

    Hay cientos de operaciones de cadenas en Python, tendremos un art铆culo dedicado a estas funciones en el futuro.

    Operadores en Python

    Los operadores en programaci贸n son las construcciones que le permiten manipular un operando para realizar una funci贸n espec铆fica. Son muy similares a los operadores de la vida real, como los operadores aritm茅ticos, por ejemplo, los operadores de suma, resta, mayor que, menor que y Y / O, etc.

    Hay siete tipos de operadores en Python:

    • Operadores aritm茅ticos
    • Operadores logicos
    • Operadores de Asignaci贸n
    • Operadores de comparaci贸n
    • Operadores bit a bit
    • Operadores de identidad
    • Operadores miembros

    En este art铆culo lo haremos simple y estudiaremos solo los primeros cuatro operadores. Los otros operadores est谩n fuera del alcance de este art铆culo.

    Operadores aritm茅ticos

    Los operadores aritm茅ticos realizan operaciones matem谩ticas como suma, resta, multiplicaci贸n, divisi贸n y funciones exponenciales en los operandos. El detalle de las funciones aritm茅ticas se ha dado en la siguiente tabla:

    Suponga que las variables n1y n2tienen valores de 4 y 2, respectivamente.

    Operador Funcionalidad Ejemplo

    Suma (+)Agrega dos o m谩s operandosn1 + n2 = 6
    Resta (-)Resta el segundo operando del primeron1 - n2 = 2
    Multiplicaci贸n (*)Multiplica dos o m谩s operandosn1 * n2 = 8
    Divisi贸n (/)Dividir el primer operando por el segundon1 / n2 = 2
    M贸dulo (%)Encuentra el resto cuando el primer operando se divide por segundon1 % n2 = 0
    Exponente (**)Lleva el poder del primer operando al segundon1 ** n2 = 16

    Quiz谩s recuerde haber visto un ejemplo del operador de suma aritm茅tico anteriormente en la secci贸n Variable de datos num茅ricos. En Python, los operadores de suma pueden aplicarse a cualquier tipo de n煤mero e incluso cadenas.

    Operadores logicos

    Los operadores l贸gicos, que le ayudan a realizar 谩lgebra booleana simple , soportados por Python son los siguientes:

    Suponga o1y o2tenga valores Truey False, respectivamente.

    Operador Funcionalidad Ejemplo

    YDevuelve verdadero si todas las condiciones son verdaderas(o1 and o2) Es falso
    ODevuelve verdadero si alguna de las condiciones es verdadera(o1 or o2) es verdad
    NODevuelve el reverso del estado l贸gico realNot(o1) Es falso

    El siguiente c贸digo ayuda a explicar los operadores anteriores con un ejemplo:

    o1 = True
    o2 = False
    r1 = (o1 and o2)
    print(r1)
    
    r2 = (o1 or o2)
    print(r2)
    
    r3 = not(o1)
    print(r3)
    

    La salida del c贸digo anterior es:

    False
    True
    False
    

    Operadores de Asignaci贸n

    Los operadores de asignaci贸n le permiten “dar” un valor a las variables, que puede ser el resultado de una operaci贸n. La siguiente tabla contiene algunos de los operadores de asignaci贸n m谩s utilizados en Python:

    Operador Funcionalidad Ejemplo

    AsignarAsignar el valor de la derecha a la variable de la izquierdar = n1 + n2asigna valor de n1 + n2enr
    Agregar y asignarAgrega ambos operandos y asigna el resultado a la variable de la izquierdan1 += n2 es lo mismo que n1 = n1 + n2
    Restar y asignarResta el operando derecho del izquierdo y asigna el resultado al izquierdon1 -= n2 medio n1 = n1 - n2
    Multiplicar y asignarMultiplica ambos operandos y asigna el resultado al de la izquierdan1 *= n2 medio n1 = n1 * n2
    Dividir y asignarDivide ambos operandos y asigna el resultado al de la izquierdan1 /= n2 medio n1 = n1 / n2
    M贸dulo y asignaci贸nTome el m贸dulo dividiendo el operando izquierdo por el derecho y asigne el resultado al izquierdon1 %= n2 medio n1 = n1 % n2
    Exponente y asignaci贸nTome el exponente del operando derecho a la izquierda y asigne el valor a la izquierdan1 **= n2 medio n1 = n1 ** n2

    Eche un vistazo al siguiente ejemplo para ver algunos de los operadores de asignaci贸n en acci贸n:

    n1 = 4
    n2 = 2
    
    n1 += n2
    print(n1)
    n1 = 4
    
    n1 -= n2
    print(n1)
    n1 = 4
    
    n1 *= n2
    print(n1)
    n1 = 4
    
    n1 /= n2
    print(n1)
    

    La salida del c贸digo anterior ser谩:

    6
    2
    8
    2.0
    

    Observe c贸mo en la 煤ltima operaci贸n obtenemos un n煤mero de punto flotante como nuestro resultado, mientras que obtenemos n煤meros enteros en todas las operaciones anteriores. Esto se debe a que esta es la 煤nica operaci贸n matem谩tica en nuestro ejemplo que podr铆a convertir dos n煤meros enteros en un n煤mero de punto flotante.

    Operadores de comparaci贸n

    Los operadores de comparaci贸n se utilizan para comparar dos o m谩s operandos. Python admite los siguientes operadores de comparaci贸n:

    Suponga que n1es 10 y n2es 5 en la siguiente tabla.

    Operador Funcionalidad Ejemplo

    ==Devuelve Truesi los dos operandos son iguales entre s铆.(n1 == n2) no es verdad
    !=Devuelve verdadero de dos operandos que no son iguales(n1 != n2) es verdad
    >Devuelve verdadero si el operando izquierdo es mayor que el operando derecho(n1 > n2) es verdad
    <Devuelve verdadero si el operando izquierdo es m谩s peque帽o que el operando derecho(n1 < n2) no es verdad
    > =Devuelve verdadero si el operando izquierdo es igual o mayor que el operando derecho(n1 >= n2) es verdad
    <=Devuelve verdadero si el operando izquierdo es igual o menor que el operando derecho(n1 =< n2) no es verdad

    Considere el siguiente ejemplo simple de operador de comparaci贸n:

    n1 = 10
    n2 = 5
    
    print(n1 == n2)
    print(n1 != n2)
    print(n1 > n2)
    print(n1 < n2)
    print(n1 >= n2)
    print(n1 <= n2)
    

    La salida del c贸digo anterior es:

    False
    True
    True
    False
    True
    False
    

     

    El Bootcamp completo de Python

    驴Quiere aprender m谩s sobre Python de lo que se trata en este art铆culo? Con este curso obtendr谩s m谩s de 100 conferencias y m谩s de 10 horas de video. 隆Empiece desde lo b谩sico y vaya hasta la creaci贸n de sus propias aplicaciones y juegos!

     

    Declaraciones condicionales

    Las declaraciones condicionales se utilizan para seleccionar el bloque de c贸digo que desea ejecutar en funci贸n de una determinada condici贸n. Supongamos que en un sistema de gesti贸n hospitalario, desea implementar una verificaci贸n de que el paciente con m谩s de 65 a帽os puede recibir tratamiento prioritario mientras que los dem谩s no, puede hacerlo con declaraciones condicionales.

    Hay cuatro tipos de declaraciones condicionales:

    • declaraciones “si”
    • declaraciones “if / else”
    • declaraci贸n “if / elif”
    • Declaraciones “if / else” anidadas

    B谩sicamente, el segundo y tercer tipo son solo extensiones del primer tipo de declaraci贸n.

    Si declaraci贸n

    La “declaraci贸n if” es la m谩s simple de todas las declaraciones. Si la condici贸n dada se resuelve como verdadera (como 1 < 10), entonces se ejecuta el bloque de c贸digo que sigue a la “instrucci贸n if”. Si la condici贸n devuelve falso (me gusta 1 > 10), entonces el c贸digo no se ejecuta.

    Eche un vistazo al siguiente ejemplo.

    age = 67
    
    if age >= 65:
        print("You are eligible for priority treatment.")
    
    print("Thank you for your visit")
    

    Preste mucha atenci贸n a la sintaxis de las declaraciones condicionales. En la mayor铆a de los otros lenguajes de programaci贸n, el bloque de c贸digo que se ejecutar谩 si la condici贸n “si” devuelve verdadero est谩 entre corchetes. Aqu铆 en Python tienes que usar dos puntos despu茅s de la condici贸n “si” y luego tienes que sangrar el c贸digo que quieres ejecutar si la condici贸n devuelve verdadero.

    Se considera que Python es un lenguaje mucho m谩s limpio que muchos otros debido a la ausencia de corchetes. En cambio, la sangr铆a se utiliza para especificar el alcance, que tiene sus propios pros y contras.

    En el ejemplo anterior tenemos una agevariable con valor 67. Comprobamos si agees mayor que 65, y si esta condici贸n devuelve verdadera, imprimimos un mensaje que le dice al usuario que es elegible para tratamiento prioritario. Observe que este mensaje tiene sangr铆a, lo que nos dice que es el c贸digo que se ejecutar谩 siguiendo una condici贸n verdadera. Finalmente, simplemente imprimimos el mensaje de agradecimiento en la pantalla. La salida de este c贸digo ser谩:

    You are eligible for priority treatment.
    Thank you for your visit
    

    Ahora establezcamos el valor de la agevariable en 55 y veamos la diferencia.

    age = 55
    
    if age >=65:
        print("You are eligible for priority treatement.")
    print("Thank you for your visit")
    

    El resultado de lo anterior se ve as铆:

    Thank you for your visit
    

    Tenga en cuenta que esta vez la condici贸n no volvi贸 a ser verdadera, por lo que la declaraci贸n que le dice al paciente que es elegible para el tratamiento prioritario no se imprime en la pantalla. Solo han aparecido saludos ya que no estaban dentro (sangrados) del cuerpo de la declaraci贸n “si”.

    Declaraci贸n If / Else

    La instrucci贸n “if / else” se utiliza para especificar la ruta alternativa de ejecuci贸n en caso de que la instrucci贸n “if” devuelva falso. Eche un vistazo al siguiente ejemplo:

    age = 55
    
    if age >=65:
        print("You are eligible for priority treatment.")
    else:
        print("You are eligible for normal treatment")
    
    print("Thank you for your visit")
    

    Aqu铆 se ejecutar谩 el bloque de c贸digo seguido de la instrucci贸n “else” ya que la agevariable es 55 y la condici贸n “if” devolver谩 falso. Por lo tanto, la instrucci贸n “else” se ejecutar谩 en su lugar. La salida ser谩 la siguiente:

    You are eligible for normal treatment
    Thank you for your visit
    

    Declaraci贸n If / Elif

    La declaraci贸n “if / elif” se usa para implementar m煤ltiples condiciones. Eche un vistazo al siguiente ejemplo:

    age = 10
    
    if age >= 65:
        print("You are eligible for priority treatment.")
    elif age > 18 and age < 65:
        print("You are eligible for normal treatment")
    elif age < 18:
        print("You are eligible for juvenile treatment")
    
    print("Thank you for your visit")
    

    En el c贸digo anterior hemos implementado tres condiciones. Si agees mayor que 65, si ageest谩 entre 65 y 18, y si agees menor que 18. Basado en el valor de age, se ejecutar谩 una sentencia de impresi贸n diferente. Aqu铆, dado que agees 10, el segundo condicional devuelve verdadero y ver谩 el siguiente resultado:

    You are eligible for juvenile treatment
    Thank you for your visit
    

    Si ninguno de los condicionales fuera verdadero, ninguna de las print()declaraciones se habr铆a ejecutado. Esto difiere del ejemplo “if / else” donde se ejecuta “if” o “else”. En el caso de “if / elif”, este no es necesariamente el caso. Sin embargo, puede agregar una instrucci贸n “else” normal al final que se ejecuta si ninguna de las condiciones anteriores devuelve verdadera.

    Usando este m茅todo que acabo de describir, podr铆amos volver a escribir el ejemplo anterior para que se vea as铆:

    age = 10
    
    if age >= 65:
        print("You are eligible for priority treatment.")
    elif age > 18 and age < 65:
        print("You are eligible for normal treatment")
    else:
        print("You are eligible for juvenile treatment")
    
    print("Thank you for your visit")
    

    Este c贸digo dar铆a como resultado el mismo resultado que el ejemplo anterior.

    Declaraci贸n anidada If Else

    Las instrucciones “if / else” anidadas se utilizan para implementar condiciones anidadas (es decir, condiciones dentro de otra condici贸n). Considere el siguiente ejemplo:

    age = 67
    insurance = "yes"
    
    if age >= 65:
        print("You are eligible for priority treatment.")
        if insurance == "yes":
            print("The insurance company will pay for you.")
        else:
            print("You have to pay in advance.")
    else:
        print("You are eligble for normal treatment")
    
    print("Thank you for your visit")
    

    Aqu铆 tenemos una condici贸n externa que si agees mayor o igual a 65, entonces verifique si el paciente tiene seguro o no. Si el paciente tiene seguro, la compa帽铆a de seguros pagar谩 la factura m谩s tarde, de lo contrario, el paciente debe pagar por adelantado.

    Bucles

    Las sentencias de iteraci贸n, o m谩s com煤nmente conocidas como bucles, se utilizan para ejecutar repetidamente un fragmento de c贸digo varias veces. Considere si tiene que imprimir los nombres de 100 personas en la pantalla. Tendr谩 que escribir 100 declaraciones impresas o tendr谩 que usar cientos de caracteres de escape en una declaraci贸n impresa. Si tiene que realizar esta tarea repetidamente, tendr谩 que escribir cientos de miles de tediosas l铆neas de c贸digo. Una mejor forma es hacer uso de bucles.

    Hay dos tipos principales de bucles en Python:

    • En bucle
    • Mientras bucle

    Tenga en cuenta que puede anidar bucles como hicimos con las declaraciones condicionales, pero no vamos a entrar en eso aqu铆.

    El bucle for

    El “bucle for” se utiliza para iterar sobre una colecci贸n de elementos. El bucle sigue ejecut谩ndose hasta que se han atravesado todos los elementos de la colecci贸n. Eche un vistazo al ejemplo simple de bucle for:

    nums = [1, 2, 4, 5, 6, 7, 8, 9, 10]
    
    for n in nums:
        print(5 * n)
    

    El ejemplo anterior simplemente imprime el producto de cada elemento en numsy 5. Aqu铆 tenemos una lista numsque contiene n煤meros enteros del 1 al 10. No se preocupe, estudiaremos las listas en detalle en una secci贸n posterior. Por ahora, consid茅relo como una colecci贸n de elementos, que en este caso son n煤meros.

    Preste mucha atenci贸n al c贸digo anterior. Sigue la siguiente sintaxis:

    for [temp_var] in [collection]:
        [statements]
    

    En la primera iteraci贸n del “bucle for”, el 1 se almacena en la variable temporal n. Este 1 se multiplica por 5 y el resultado se imprime en la pantalla. En la segunda iteraci贸n, el segundo elemento de la numscolecci贸n (es decir, 2) se almacena en la nvariable y 2 se multiplica por 5. Estas iteraciones contin煤an hasta que numsse han atravesado todos los elementos de la colecci贸n. Despu茅s de encontrar el 煤ltimo elemento (10), el bucle se detiene y la ejecuci贸n del c贸digo pasa del “bucle for”.

    La salida del c贸digo anterior es:

    5
    10
    20
    25
    30
    35
    40
    45
    50
    

    El bucle while

    El “bucle while” es diferente del “bucle for” en que sigue ejecut谩ndose mientras una determinada condici贸n sigue siendo verdadera. Despu茅s de cada iteraci贸n del ciclo while, se vuelve a evaluar la condici贸n. Cuando la condici贸n finalmente devuelve falsa, el ciclo while deja de ejecutarse y sale.

    Eche un vistazo al siguiente ejemplo:

    x = 50
    
    while x > 0:
        print(x)
        x = x - 5
    

    Aqu铆 el ciclo seguir谩 ejecut谩ndose hasta que el valor de se xvuelva negativo. La xvariable tiene inicialmente un valor de 50 y durante cada iteraci贸n lo disminuimos en 5. Entonces, despu茅s de 10 iteraciones, el valor se volver谩 negativo y el ciclo dejar谩 de ejecutarse.

    La salida se ver谩 as铆:

    50
    45
    40
    35
    30
    25
    20
    15
    10
    5
    

    Mientras que los bucles son buenos para momentos en los que a煤n no sabe cu谩ntas iteraciones necesita. Los bucles for iteran un n煤mero determinado de veces, mientras que los bucles while pueden iterar un n煤mero desconocido de veces, o incluso un n煤mero infinito de veces.

    Funciones en Python

    Las funciones en programaci贸n son construcciones que realizan tareas espec铆ficas. Las funciones son 煤tiles en escenarios en los que tiene que realizar una tarea varias veces a lo largo de su c贸digo. En lugar de volver a escribir la misma funcionalidad una y otra vez, puede crear una funci贸n que realice esa tarea y luego llamar a esa funci贸n donde y cuando quiera.

    Observe que existe una diferencia entre realizar una tarea repetidamente y realizar una tarea varias veces. Los bucles se utilizan cuando tiene que realizar una tarea repetidamente en secuencia. Las funciones, por otro lado, se utilizan cuando tienes que realizar la misma tarea en diferentes lugares a lo largo de tu c贸digo.

    Considere un escenario en el que tiene que imprimir una declaraci贸n larga en la pantalla en diferentes momentos. En su lugar, escriba una funci贸n que imprima la declaraci贸n que desea y luego llame a la funci贸n donde desee imprimir la declaraci贸n.

    Eche un vistazo al siguiente ejemplo:

    def displayWelcome():
        print("Welcome to Python. This article explains the basics of Python for absolute beginners!")
        return;
    
    displayWelcome()
    print("Do something here")
    displayWelcome()
    print("Do some other stuff here")
    

    Hay dos cosas que me gustar铆a se帽alar en este c贸digo: la definici贸n de la funci贸n y las llamadas a la funci贸n.

    La definici贸n de funci贸n se refiere a definir la tarea realizada por la funci贸n. Para definir una funci贸n, debe usar una palabra clave defseguida del nombre de la funci贸n, que se encuentra displayWelcomeen el ejemplo anterior. Puede utilizar cualquier nombre de funci贸n, pero utilizar la funci贸n sem谩ntica. El nombre de la funci贸n va seguido de par茅ntesis de apertura y cierre. Los par茅ntesis se utilizan para definir par谩metros o cualquier valor de entrada predeterminado, que veremos en el siguiente ejemplo. Despu茅s del par茅ntesis, debe usar dos puntos y en la siguiente l铆nea se define el cuerpo de la funci贸n. Una funci贸n suele terminar con una returndeclaraci贸n, pero no es necesaria si no se devuelve un valor.

    En la segunda parte de nuestro c贸digo de ejemplo, ver谩 la llamada a la funci贸n. Para llamar a una funci贸n, simplemente debe escribir el nombre de la funci贸n seguido de un par de par茅ntesis. Si una funci贸n acepta par谩metros, debe pasarlos entre par茅ntesis.

    La salida del c贸digo anterior ser谩:

    Welcome to Python. This article explains the basics of Python for absolute beginners
    Do something here
    Welcome to Python. This article explains the basics of Python for absolute beginners
    Do some other stuff here
    

    Puede ver que nuestra cadena larga se imprimi贸 dos veces. Una vez antes de la instrucci贸n “Hacer algo aqu铆”, y una vez despu茅s, que coincide con el orden de nuestras llamadas a funciones dentro del c贸digo.

    Puede imaginar lo importante que es esto para la programaci贸n. 驴Y si tuvi茅ramos que realizar una tarea m谩s compleja como descargar un archivo o realizar un c谩lculo complejo? Ser铆a un desperdicio escribir el c贸digo completo varias veces, que es donde entran en juego las funciones.

    Funciones con par谩metros

    Ahora veamos c贸mo pasar par谩metros a una funci贸n. Un par谩metro es simplemente una variable que se le da a la funci贸n desde el llamador.

    Escribamos una funci贸n que suma dos n煤meros que se le pasan como par谩metros entre par茅ntesis:

    def addNumbers(n1, n2):
        r = n1 + n2
        return r;
    
    result = addNumbers(10, 20)
    print(result)
    
    result = addNumbers(40, 60)
    print(result)
    
    result = addNumbers(15, 25)
    print(result)
    

    En el c贸digo anterior tenemos la addNumbersfunci贸n, que acepta dos valores de la llamada a la funci贸n. Los valores se almacenan en las variables n1y n2. Dentro de la funci贸n, estos valores se agregan y almacenan en la rvariable. A continuaci贸n, el valor de la rvariable se devuelve al llamador de la funci贸n.

    En la primera llamada a addNumberspasamos dos valores, 10 y 20. Tenga en cuenta que el orden de los par谩metros es importante. El primer valor de la llamada a la funci贸n se almacena en el primer par谩metro de la funci贸n y el segundo valor se almacena en el segundo par谩metro. Por lo tanto, 10 se almacenar谩n en n1y 20 se almacenar谩n en n2. Luego mostramos el resultado de la funci贸n a trav茅s de la printdeclaraci贸n. Esta funci贸n se llama un total de tres veces, cada vez con diferentes valores de par谩metro.

    El resultado del c贸digo anterior ser谩:

    30
    100
    40
    

    Puede ver que cada vez que se llama a la funci贸n, nuestra resultvariable contiene la suma de los dos n煤meros pasados.

    Listas, tuplas y diccionarios

    Las listas, tuplas y diccionarios son tres de las estructuras de datos m谩s utilizadas en programaci贸n. Aunque todos almacenan una colecci贸n de datos, la principal diferencia radica en lo siguiente:

    • C贸mo coloca los datos en la estructura de datos
    • C贸mo se almacenan los datos dentro de la estructura
    • C贸mo se accede a los datos desde la estructura de datos

    En las siguientes secciones, ver谩 algunas de estas propiedades para cada estructura de datos.

    Liza

    Las listas se utilizan para almacenar una colecci贸n de elementos de diferentes tipos de datos. Los elementos se almacenan dentro de corchetes donde cada elemento se separa entre s铆 con una coma.

    Veamos c贸mo crear una lista simple:

    randomlist = ['apple', 'banana', True, 10, 'Mango']
    

    Puede ver que hemos almacenado cadenas, un n煤mero y un booleano en esta lista. En Python (a diferencia de otros lenguajes fuertemente tipados), una lista puede almacenar cualquier tipo de datos en una sola lista, como se muestra arriba. Sin embargo, m谩s com煤nmente, las listas tienden a almacenar muchos valores diferentes del mismo tipo de datos.

    Acceder a los elementos de la lista

    Para acceder a un elemento en una lista, simplemente escriba el nombre de la variable de la lista seguido de un par de corchetes. Dentro de los corchetes, especifique el n煤mero de 铆ndice del elemento al que desea acceder. Es importante tener en cuenta que las listas en Python (y muchos otros lenguajes de programaci贸n), los 铆ndices de lista comienzan en 0. Esto significa que el primer elemento de cada lista est谩 en la posici贸n 0, y el 煤ltimo elemento est谩 en la posici贸n n-1, donde n es la longitud de la lista. Esto se denomina indexaci贸n de base cero.

    Eche un vistazo a este c贸digo:

    print(randomlist[0])
    print(randomlist[4])
    

    Aqu铆 estamos accediendo al primer y quinto elemento de la randomlistlista. La salida ser谩:

    apple
    Mango
    

    Tambi茅n puede haber notado que los elementos de la lista permanecen en el orden en que se almacenan. Permanecer谩n en el mismo orden a menos que se muevan o eliminen expl铆citamente.

    Asignar nuevos elementos de lista

    Para asignar un valor a una posici贸n de lista existente, debe especificar el 铆ndice de la posici贸n a la que desea asignar el valor y luego usar el operador de asignaci贸n ( =) para asignar el valor.

    Vea el c贸digo a continuaci贸n:

    # Define the list
    randomlist = ['apple', 'banana', True, '10', 'Mango']
    
    # Print the current value at index 0
    print(randomlist[0])
    
    # Assign a new value at index 0
    randomlist[0] = 'Peach'
    
    # Print the updated value
    print(randomlist[0])
    

    Aqu铆 hemos actualizado el primer elemento de la lista. Mostramos el valor del elemento antes y despu茅s de la actualizaci贸n para mostrar el cambio.

    Agregar elementos de lista

    En la 煤ltima subsecci贸n mostramos c贸mo asignar un valor a una lista, pero esto solo se aplica si un elemento ya existe en esa posici贸n. 驴Qu茅 pasa si queremos expandir el tama帽o de la lista y agregar un nuevo elemento sin deshacernos de ninguno de nuestros elementos anteriores? Hacemos esto usando la append()funci贸n.

    randomlist = ['apple', 'banana', True, '10', 'Mango']
    
    print(randomlist)
    
    # Add a new element
    randomlist.append(0)
    
    print(randomlist)
    

    Al ejecutar este c贸digo, notar谩 que el valor 0 se muestra al final de la lista despu茅s de llamar a la appendfunci贸n. Nuestra lista ahora tiene un total de 6 elementos, incluido nuestro nuevo valor.

    Eliminar elementos de la lista

    Para eliminar un elemento, simplemente usamos la delpalabra clave. Eche un vistazo al siguiente ejemplo para ver c贸mo se usa:

    randomlist = ['apple', 'banana', True, '10', 'Mango']
    
    print(randomlist)
    
    # Remove the second element
    del randomlist[1]
    
    print(randomlist)
    

    Aqu铆 borramos el segundo elemento de la randomlistlista. Usamos la printdeclaraci贸n para mostrar la lista antes y despu茅s de eliminar el elemento. La salida ser谩 la siguiente:

    ['apple', 'banana', True, '10', 'Mango']
    ['apple', True, '10', 'Mango']
    

    Tuplas

    Las tuplas son similares a las listas en el sentido de que almacenan elementos de diferentes tipos de datos. La principal distinci贸n entre tuplas y listas es que las tuplas son inmutables . Esto significa que una vez que ha creado una tupla, no puede actualizar el valor de ning煤n elemento en la tupla, ni puede eliminar un elemento.

    En t茅rminos de sintaxis, las tuplas se diferencian de las listas en que usan parenthasis, mientras que las listas usan corchetes. Incluso con todas estas diferencias, las tuplas siguen siendo muy similares a las listas. Se accede a los elementos del mismo modo y se conserva el orden de los elementos, al igual que las listas.

    As铆 es como puede crear una tupla:

    randomtuple = ('apple', 'banana', True, '10', 'Mango')
    
    Acceder a elementos de tupla

    Se puede acceder a los elementos de tupla de la misma manera que a las listas:

    randomtuple = ('apple', 'banana', True, '10', 'Mango')
    
    print(randomtuple[1])
    print(randomtuple[4])
    

    En el script anterior, estamos accediendo al segundo y quinto elemento de la tupla. Como se esperaba, esto dar铆a como resultado el siguiente resultado:

    banana
    Mango
    
    Asignar valores a elementos de tupla

    Como se discuti贸 anteriormente, no es posible asignar nuevos valores a elementos de tupla ya declarados. Entonces no puedes hacer algo como esto:

    randomtuple[1] = 10     # This operation is not allowed
    

    Intentar una asignaci贸n como esta da como resultado el siguiente error:

    TypeError: 'tuple' object does not support item assignment
    
    Eliminar un elemento de tupla

    No puede eliminar un elemento de tupla individual. Si lo intenta, se generar铆a un error, como mostramos cuando intenta reasignar un elemento:

    TypeError: 'tuple' object doesn't support item deletion
    

    Sin embargo, puede eliminar una tupla usando la funci贸n “del” como se muestra en el siguiente ejemplo:

    randomtuple = ('apple', 'banana', True, '10', 'Mango')
    
    print(randomtuple)
    
    del randomtuple
    
    print(randomtuple)
    

    Si intenta acceder a una tupla eliminada, como en la segunda printdeclaraci贸n anterior, recibir谩 el siguiente mensaje de error:

    NameError: name 'randomtuple' is not defined
    

    Diccionarios

    Al igual que las listas y las tuplas, las estructuras de datos de diccionario almacenan una colecci贸n de elementos. Sin embargo, difieren bastante de las tuplas y listas porque son almacenes de valores clave. Esto significa que le da a cada valor una clave (m谩s com煤nmente una cadena o un n煤mero entero) que puede usarse para acceder al elemento en un momento posterior. Cuando tiene una gran cantidad de datos, esto es m谩s eficiente para acceder a los datos que recorrer una lista completa para encontrar su elemento.

    Cuando crea un diccionario, cada par clave-valor se separa del otro por una coma y todos los elementos se almacenan entre corchetes. Vea el siguiente c贸digo:

    randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'}
    

    Los diccionarios son muy 煤tiles cuando tienes mucha informaci贸n sobre algo en particular, como el ejemplo del autom贸vil que mostramos arriba. Tambi茅n son 煤tiles cuando necesita acceder a elementos aleatorios de la colecci贸n y no desea atravesar una lista enorme para acceder a ellos.

    Acceder a los elementos del diccionario

    Se accede a los elementos del diccionario utilizando sus claves. Por ejemplo, si desea acceder al primer elemento, tendr谩 que usar su clave, que en este caso es ‘Make’. Eche un vistazo al siguiente ejemplo para ver la sintaxis:

    randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'}
    
    print(randomdict['Make'])
    print(randomdict['Model'])
    

    Aqu铆 estamos accediendo al primer y segundo elemento del diccionario randomdict a trav茅s de sus claves. La salida se ver谩 as铆:

    Honda
    Civic
    

    Debido a que se accede a los elementos del diccionario utilizando sus claves, los elementos no est谩n ordenados en la estructura de datos y no es tan sencillo iterar sobre ellos como lo est谩n las listas.

    Asignar valores a los elementos del diccionario

    Para asignar un valor a un elemento de diccionario ya existente, primero debe acceder al elemento y luego asignarle un nuevo valor. El siguiente ejemplo muestra esto:

    randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'}
    
    print(randomdict['Make'])
    randomdict['Make'] = 'Audi'
    print(randomdict['Make'])
    

    La salida tendr谩 esto:

    Honda
    Audi
    
    Eliminar elementos del diccionario

    Hay tres formas diferentes de eliminar elementos en los diccionarios: puede eliminar elementos individuales, puede eliminar todos los elementos o puede eliminar todo el diccionario. El siguiente ejemplo muestra todas estas tres formas:

    randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'}
    
    # Displaying complete dictionary
    print(randomdict)
    
    # Deleting one element
    del randomdict['Make']
    print(randomdict)
    
    # Clearing whole dictionary
    randomdict.clear()
    print(randomdict)
    
    # Deleting dictionary itself
    del randomdict
    print(randomdict)
    

    Aqu铆 mostramos el diccionario despu茅s de realizar cada una de las tres operaciones de eliminaci贸n. No se preocupe por el “#” y el texto que sigue en el c贸digo, estos est谩n ah铆 para hacer comentarios sobre el c贸digo. Los comentarios no se ejecutan, solo proporcionan informaci贸n sobre el c贸digo y son puramente opcionales.

    La salida del c贸digo anterior ser谩:

    {'Color': 'Black', 'Make': 'Honda', 'Model': 'Civic', 'Year': 2010}
    {'Color': 'Black', 'Model': 'Civic', 'Year': 2010}
    {}
    Traceback (most recent call last):
      File "dict_test.py", line 16, in <module>
        print(randomdict)
    NameError: name 'randomdict' is not defined
    

    Observe que, dado que eliminamos el diccionario al final, se arroja un error que indica que randomdictno est谩 definido.

    Aplicaci贸n de ejemplo

    Ahora que hemos analizado muchos de los conceptos m谩s b谩sicos de Python, demos un buen uso y creemos una aplicaci贸n simple usando lo que aprendimos.

    Supongamos que tiene tantos coches que no puede hacer un seguimiento de todos, as铆 que crearemos una aplicaci贸n para que lo haga por usted. Funcionar谩 pregunt谩ndole continuamente si desea agregar autom贸viles a su inventario y, si lo hace, le pedir谩 los detalles del autom贸vil. Si no lo hace, la aplicaci贸n imprimir谩 los detalles de todos sus autom贸viles y saldr谩.

    Aqu铆 est谩 el c贸digo completo, que explicaremos en detalle en el resto de esta secci贸n:

    cars = []
    
    add_inventory = raw_input('Add inventory? [y/n] ')
    
    while add_inventory == 'y':
        # Get car data from user
        make = raw_input('Make: ')
        model = raw_input('Model: ')
        year = raw_input('Year: ')
        miles = raw_input('Miles: ')
    
        # Create car dictionary object and save it to list
        car = {'Make': make, 'Model': model, 'Year': year, 'Miles': miles}
        cars.append(car)
    
        # Ask user if we should keep going
        add_inventory = raw_input('Add inventory? [y/n] ')
    
    print('')
    print('Here are your cars:')
    
    # Display all of our cars
    for c in cars:
        print('Make: ' + c['Make'])
        print('Model: ' + c['Model'])
        print('Year: ' + c['Year'])
        print('Miles: ' + c['Miles'])
        print('')
    

    En la primera l铆nea de nuestro c贸digo creamos una lista que contendr谩 los detalles de todos nuestros autos. Cada elemento de la lista ser谩 un elemento de diccionario, que contendr谩 detalles como “Marca”, “Modelo”, etc.

    La segunda l铆nea de c贸digo usamos una funci贸n incorporada de Python llamada raw_input(), que muestra el texto dado al usuario a trav茅s de la l铆nea de comando y luego espera la respuesta. Cualquier texto que ingrese el usuario se guarda en la add_inventoryvariable.

    Luego, verificamos si el usuario desea agregar inventario al verificar el car谩cter “y”. Si el usuario desea agregar inventario, usamos la raw_input()funci贸n nuevamente para recopilar informaci贸n sobre el autom贸vil. Una vez que tenemos todo lo que necesitamos, creamos una carvariable que almacena un diccionario con todos los datos de nuestro coche. Este objeto de diccionario se guarda en nuestra carlista utilizando el append()m茅todo, que recordar谩 que agrega nuestro elemento al final de la lista.

    Usando un “ciclo while”, verificamos continuamente para ver si el usuario desea agregar m谩s autos a su inventario. Esto podr铆a continuar mientras el usuario siga ingresando “y” en “驴Agregar inventario?” prompt, que es exactamente para lo que sirven los “bucles while”.

    Cuando el usuario finalmente ingrese “n” (o cualquier car谩cter que no sea “y”), le imprimiremos una lista completa de su inventario. Esto se hace usando un “bucle for”. Para cada elemento de la lista, almacenamos el elemento actual en la cvariable temporal y recuperamos todos los datos relevantes del autom贸vil usando sus claves, que luego imprimimos en la pantalla usando la concatenaci贸n de cadenas (o “suma”). Esto agrega las dos cadenas para convertirse en una antes de imprimirse en la pantalla.

    Ejecutar este c贸digo a trav茅s de la l铆nea de comando puede verse as铆:

    $ python cars.py
    Add inventory? [y/n] y
    Make: Porsche
    Model: 911 Turbo
    Year: 2017
    Miles: 2000
    Add inventory? [y/n] y
    Make: Ferrari
    Model: 488 GTB
    Year: 2016
    Miles: 12000
    Add inventory? [y/n] y
    Make: Lamborghini
    Model: Aventador
    Year: 2017
    Miles: 8000
    Add inventory? [y/n] n
    
    Here are your cars:
    Make: Porsche
    Model: 911 Turbo
    Year: 2017
    Miles: 2000
    
    Make: Ferrari
    Model: 488 GTB
    Year: 2016
    Miles: 12000
    
    Make: Lamborghini
    Model: Aventador
    Year: 2017
    Miles: 8000
    

    驴Que sigue?

    Este art铆culo proporciona una introducci贸n muy b谩sica al lenguaje de programaci贸n Python. Hemos abordado solo los conceptos m谩s fundamentales, incluidas variables, operadores, declaraciones condicionales, bucles y m谩s.

    Se podr铆a dedicar un art铆culo completo a cada uno de estos temas, por lo que sugerir铆a buscar m谩s recursos sobre cada uno.

    Una vez que encuentre sus pies en los conceptos simples de Python, pase a temas m谩s avanzados como Python orientado a objetos. La mayor铆a de las aplicaciones de programaci贸n avanzada hoy en d铆a se basan en principios orientados a objetos. Como se explic贸 al principio, Python se est谩 utilizando ampliamente para el desarrollo web, el aprendizaje autom谩tico, la ciencia de datos y tambi茅n los microcontroladores, as铆 que pruebe un poco de todo y vea qu茅 nicho es m谩s interesante para usted.

    驴Qu茅 opinas de Python hasta ahora? 驴Para qu茅 planeas usarlo? 隆H谩znoslo saber en los comentarios!

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *