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 ​​en 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 *