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 IA, o incluso programación de microcontroladores, Python ha encontrado...

Python es uno de los lenguajes más utilizados que existen. Ya sea desarrollo web, aprendizaje automático e IA, 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 lenguaje. 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 su cuenta. ¡Recuerda, no mejorarás en la programación a menos que la practiques!

El artículo se divide en las siguientes secciones:

Por qué aprender Python {#por qué aprender Python}

Aquí surge la pregunta de por qué deberías aprender Python. Hay muchos otros lenguajes de programación; es posible que incluso hayas aprendido algunos de ellos. Entonces, ¿por qué Python? ¿Qué tiene de especial? Hay varias razones para aprender Python, las más importantes se enumeran a continuación.

  • Fácil de aprender

    Python is considered one of the most idiomas para principiantes. The syntax of Python is the simplest of all. You don't have to learn complex variable types, use of brackets for grouping code blocks and so on. Python is built upon the fundamental principle of beginner-friendliness.

  • Altamente en demanda

    According to a recent survey by indeed.com, Python developers are the second highest paid developers in USA. The huge job potential of Python can be estimated by the fact that in 2014 the average hiring rate for programmers decreased by 5% but Python developers still saw an increase of 8.7%.

  • Ideal para desarrollo Web

    Python is lightning fast when compared with other web development languages such as PHP and ASP.NET. Also, Python has myriad of amazing frameworks such as Django, Frasco, and Pylons, which makes web development even simpler. Websites like Instagram, Pinterest and The Guardian are all based on the popular Django framework.

  • Utilizado en gran medida para el aprendizaje automático y la IA

    Python is the most widely used language for machine learning and artificial intelligence operations. Python libraries such as TensorFlow and scikit-learn makes AI tasks much simpler when compared to MATLAB or R, which previously was the most widely used environment for data science and AI tasks.

  • Funciona con Raspberry Pi

    Python is the most popular programming language for the Raspberry Pi, which is a pocket size microcomputer used in a wide range of applications such as robots, gaming consoles, toys. In short, learn Python if you want to build things with the Raspberry Pi.

  • Cariño corporativo

    It would not be an exaggeration if we say that Python is the darling of all all the big corporate companies such as google, yahoo, NASA, Disney, IBM etc. These companies have incorporated Python at the core of many of its applications.

  • Gran Comunidad

    Python has one of the largest programming communities online and it continues to grow. Python has the fifth largest Stack Overflow community, and third largest meet-up community. And most importantly, it is the 4th most used language at GitHub, which means there is tons of existing code to learn from.

Instalación y configuración

Aunque hay varias formas de instalar Python para Windows, 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 un poco hacia abajo y debería ver las opciones de descarga. Seleccione Python 3.6 como se muestra en la siguiente captura de pantalla:

{.img-responsive}

Esto descargará un instalador de Anaconda en su computadora. Abre el instalador y verás las siguientes opciones:

{.img-responsive}

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 suficiente tiempo, pero puede hacer clic en "Acepto" de todos modos.
  • En la siguiente ventana seleccione el tipo de instalación que desea. Si es un principiante absoluto en Python, le recomendaría seleccionar la opción "Solo yo".
  • A continuación, seleccione la carpeta de instalación (la 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.

{.img-responsive}

Ahora siéntese y tome un café, la instalación puede llevar algún tiempo.

Una vez finalizada la instalación, verá el mensaje:

{.img-responsive}

Haga clic en "Siguiente" y luego en el botón "Finalizar" en el siguiente cuadro de diálogo 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, normalmente es mejor para los principiantes usar un editor de texto. Afortunadamente, con la instalación de Anaconda, también se instala el Cuaderno Jupyter. "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 puedes buscarlo en Aplicaciones. Esto se muestra a continuación:

{.img-responsive}

Abra la aplicación "Jupyter Notebook". A continuación, 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:

{.img-responsive}

En el lado derecho de la página, verá una 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í:

{.img-responsive}

Aquí puede escribir, guardar y compartir fácilmente su código de Python.

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

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

1
print("Welcome to Python!")

La impresión hace exactamente lo que parece, simplemente imprime algo de texto en la pantalla. El texto que desea mostrar se ingresa entre comillas dobles dentro del paréntesis que sigue a la palabra clave imprimir.

Para ejecutar el código en "Jupyter Notebook" simplemente presione "Ctrl + Enter". La salida del código anterior debería tener el siguiente aspecto:

{.img-responsive}

Y ahí lo tienes, ¡hemos ejecutado con éxito nuestro primer programa en Python! En las siguientes secciones, continuaremos usando Jupyter para enseñar y analizar algunas funciones básicas de Python, comenzando con las variables.

Variables de Python {#variables de Python}

En pocas palabras, las variables son ubicaciones de memoria que almacenan algunos datos. Puede usar 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 su uso posterior.

Es importante mencionar aquí que a diferencia de Java, C++ y C#, Python no es un lenguaje fuertemente escrito. Esto significa que no necesita especificar el tipo de variable según el valor que contiene. Python decodifica implícitamente el tipo de variable en tiempo de ejecución según el tipo de datos almacenados en él. Por ejemplo, no necesita especificar int n = 10 para definir una variable entera llamada "n". En Python simplemente escribimos n = 10 y 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
  • Cuerdas
  • Lista
  • tuplas
  • Diccionarios

En esta sección solo veremos números y cadenas. Liza, tuplas y diccionarios se explicarán con más detalle en su propia sección respectiva más adelante en este artículo.

Números

El tipo de número de variables almacena datos numéricos. Fíjate en el siguiente ejemplo sencillo:

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

Aquí, en el ejemplo anterior, tenemos dos variables numéricas, num1 y num2, y ambas contienen algunos datos numéricos. Existe una tercera variable de tipo numérico, resultado, que contiene el resultado de la suma de los valores almacenados en las variables num1 y num2. Finalmente, en la última línea se imprime en pantalla la variable resultado.

La salida será la siguiente:

{.img-responsive}

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

  • Números enteros, como números enteros reales: 10
  • Números enteros largos, que tienen "L" al final para los valores: 1024658L
    • These can also be used in hexadecimal and octal form
  • Datos de punto flotante, que son números expresados ​​en decimales: 3.14159
  • Datos complejos, que se utilizan para representar tipos de números complejos: 2 + 3j

Cuerdas

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

1
2
3
4
5
fname = "Adam"
sname = " Grey"
fullname = fname + sname

print(fullname)

En el ejemplo anterior, tenemos dos variables de cadena: fname y sname. Estos almacenan el nombre y apellido de alguna persona. Para combinar estas dos cadenas podemos usar el operador "+" en Python. Aquí unimos las variables fname y sname y almacenamos la cadena resultante en la variable fullname. Luego mostramos la variable fullname en la pantalla.

La salida es la siguiente:

{.img-responsive}

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 AND/OR, 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 mantendremos simple y estudiaremos solo los primeros cuatro operadores. Los otros operadores están más allá 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 dan en la siguiente tabla:

Suponga que las variables n1 y n2 tienen valores de 4 y 2, respectivamente.

Ejemplo de funcionalidad del operador


Suma (+) Suma dos o más operandos n1 + n2 = 6 Resta (-) Resta el segundo operando del primero n1 - n2 = 2 Multiplicación (*) Multiplica dos o más operandos n1 * n2 = 8 División (/) Divide el primer operando por el segundo n1 / n2 = 2 Módulo (%) Encuentra el resto cuando el primer operando se divide por el segundo n1 % n2 = 0 Exponente (**) Lleva la potencia del primer operando al segundo n1 ** n2 = 16

Puede recordar haber visto un ejemplo del operador de suma aritmética anteriormente en la sección Variable de datos numéricos. En Python, los operadores de suma se pueden aplicar a cualquier tipo de número e incluso a cadenas.

{.img-responsive}

Operadores lógicos {#operadores lógicos}

Los operadores lógicos, que lo ayudan a realizar [Álgebra_booleana] simple (https://en.wikipedia.org/wiki/Álgebra_booleana), admitidos por Python son los siguientes:

Supongamos que o1 y o2 tienen valores Verdadero y Falso, respectivamente.

Ejemplo de funcionalidad del operador


AND Devuelve verdadero si todas las condiciones son verdaderas (o1 y o2) es falso OR Devuelve verdadero si alguna de las condiciones es verdadera (o1 o o2) es verdadera NOT Devuelve el reverso del estado lógico real Not(o1) es falso

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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:

1
2
3
False
True
False

Operadores de asignación

Los operadores de asignación le permiten "dar" un valor a las variables, que pueden ser el resultado de una operación. La siguiente tabla contiene algunos de los operadores de asignación más utilizados en Python:

Ejemplo de funcionalidad del operador


Asignar Asignar el valor de la derecha a la variable de la izquierda r = n1 + n2 asigna el valor de n1 + n2 a r Sumar y asignar Suma los dos operandos y asigna el resultado a la variable de la izquierda n1 += n2 es lo mismo que n1 = n1 + n2 Restar y asignar Resta el operando derecho del izquierdo y asigna el resultado a la izquierda n1 -= n2 significa n1 = n1 - n2 Multiplicar y Asignar Multiplica ambos operandos y asigna el resultado al de la izquierda n1 *= n2 significa n1 = n1 * n2 Divide and Assign Divide ambos operandos y asigna el resultado al de la izquierda n1 /= n2 significa n1 = n1 / n2 Módulo y asignación Tome el módulo dividiendo el operando izquierdo por el derecho y asigne el resultado al izquierdo n1 %= n2 significa n1 = n1 % n2 Exponente y asignación Tome el exponente del operando derecho a la izquierda y asigne el valor a la izquierda n1 **= n2 significa n1 = n1 ** n2

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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á:

1
2
3
4
6
2
8
2.0

Observe cómo en la última operación obtenemos un número de coma flotante como 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 n1 es 10 y n2 es 5 en la siguiente tabla.

Ejemplo de funcionalidad del operador


== Devuelve Verdadero si los dos operandos son iguales (n1 == n2) no es verdadero != Devuelve verdadero si dos operandos no son iguales (n1 != n2) es verdadero > Devuelve verdadero si el operando izquierdo es mayor que el operando derecho (n1 > n2) es verdadero < Devuelve verdadero si el operando izquierdo es menor que el operando derecho (n1 < n2) no es verdadero >= Devuelve verdadero si el operando izquierdo es igual o mayor que el operando derecho (n1 >= n2) es verdadero <= Devuelve verdadero si el operando izquierdo es igual o menor que el operando derecho (n1 =< n2) no es verdadero

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

1
2
3
4
5
6
7
8
9
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:

1
2
3
4
5
6
False
True
True
False
True
False

El campo de entrenamiento completo de Python ¿Quiere aprender más sobre Python de lo que se cubre en este artículo? Con este curso obtendrás más de 100 conferencias y más de 10 horas de video. ¡Comienza desde lo básico y avanza hasta crear tus 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 hospitalaria desea implementar un control de que el paciente mayor de 65 años pueda recibir un tratamiento prioritario mientras que los demás no pueden, puede hacerlo con declaraciones condicionales.

Hay cuatro tipos de sentencias condicionales:

  • declaraciones "si"
  • Declaraciones "if/else"
  • declaración "si/elif"
  • Declaraciones "if/else" anidadas

Básicamente, el segundo y tercer tipo son solo extensiones del primer tipo de instrucción.

Sentencia If

La "sentencia if" es la más simple de todas las sentencias. Si la condición dada se resuelve como verdadera (como 1 < 10), entonces se ejecuta el bloque de código que sigue a la "sentencia if". Si la condición devuelve falso (como 1 > 10), entonces el código no se ejecuta.

Echa un vistazo al siguiente ejemplo.

1
2
3
4
5
6
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 demás lenguajes de programación, el bloque de código que se ejecutará si la condición "si" devuelve verdadero está encerrado entre corchetes. Aquí en Python, debe usar dos puntos después de la condición "si" y luego debe sangrar el código que desea ejecutar si la condición es verdadera.

Se considera que Python es un lenguaje mucho más limpio que muchos otros debido a la ausencia de corchetes. La sangría se usa en su lugar para especificar el alcance, que tiene sus pros y sus contras.

En el ejemplo anterior, tenemos una variable edad con el valor 67. Verificamos si edad es mayor que 65, y si esta condición se vuelve verdadera, imprimimos un mensaje que le dice al usuario que él / ella es elegible para un tratamiento prioritario. Observe que este mensaje está sangrado, lo que nos dice que es el código que se ejecutará después de una condición verdadera. Finalmente, simplemente imprimimos el mensaje de agradecimiento en la pantalla. La salida de este código será:

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

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

1
2
3
4
5
age = 55

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

La salida de lo anterior se ve así:

1
Thank you for your visit

Observe que esta vez la condición no se volvió verdadera, por lo tanto, la declaración que le dice al paciente que es elegible para un tratamiento prioritario no se imprime en la pantalla. Solo han aparecido saludos ya que no estaban dentro (con sangría) del cuerpo de la instrucción "si".

Sentencia If/Else

La sentencia "if/else" se utiliza para especificar la ruta alternativa de ejecución en caso de que la sentencia "if" devuelva falso. Echa un vistazo al siguiente ejemplo:

1
2
3
4
5
6
7
8
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 declaración "else" ya que la variable age es 55 y la condición "if" devolverá falso. Por lo tanto, se ejecutará la instrucción "else" en su lugar. La salida será la siguiente:

1
2
You are eligible for normal treatment
Thank you for your visit

Sentencia If/Elif

La sentencia "if/elif" se usa para implementar múltiples condiciones. Echa un vistazo al siguiente ejemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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 edad es mayor que 65, si edad está entre 65 y 18, y si edad es menor de 18. Según el valor de edad, se ejecutará una declaración de impresión diferente. Aquí, dado que la edad es 10, el segundo condicional devuelve verdadero y verá el siguiente resultado:

1
2
You are eligible for juvenile treatment
Thank you for your visit

Si ninguno de los condicionales devolviera verdadero, ninguna de las sentencias print() se habría ejecutado. Esto difiere del ejemplo de "if/else", donde se ejecuta "if" o se ejecuta "else". En el caso de "if/elif", este no es necesariamente el caso. Sin embargo, puede agregar una declaración "else" normal al final que se ejecuta si ninguna de las condiciones anteriores se vuelve verdadera.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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.

Sentencia anidada If Else

Las declaraciones "if/else" anidadas se utilizan para implementar condiciones anidadas (es decir, condiciones dentro de otra condición). Considere el siguiente ejemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
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 de que si la “edad” es 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 tiene que pagar por adelantado.

Bucles

Las declaraciones de iteración, o más comúnmente conocidas como bucles, se utilizan para ejecutar repetidamente una pieza de código varias veces. Considere si tiene que imprimir los nombres de 100 personas en la pantalla. Tendrá que escribir 100 declaraciones de impresión o tendrá que usar cientos de caracteres de escape en una declaración de impresión. Si tiene que realizar esta tarea repetidamente, debe escribir cientos de miles de tediosas líneas de código. Una mejor manera es hacer uso de bucles.

Hay dos tipos principales de bucles en Python:

  • En bucle
  • Mientras Bucle

Tenga en cuenta que puede anidar bucles tal como lo hicimos con las declaraciones condicionales, pero no entraremos en eso aquí.

El bucle for

El "bucle for" se usa para iterar sobre una colección de elementos. El bucle sigue ejecutándose hasta que se han recorrido todos los elementos de la colección. Eche un vistazo al ejemplo simple de bucle for:

1
2
3
4
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 nums y 5. Aquí tenemos una lista nums que contiene números enteros del 1 al 10. No se preocupe, estudiaremos liza en detalle en una sección posterior. Por ahora, solo considéralo 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:

1
2
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 pantalla. En la segunda iteración, el segundo elemento de la colección nums (es decir, 2) se almacena en la variable n y 2 se multiplica por 5. Estas iteraciones continúan hasta que se han recorrido todos los elementos de la colección nums. 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:

1
2
3
4
5
6
7
8
9
5
10
20
25
30
35
40
45
50

El ciclo while

El "bucle while" es diferente del "bucle for" en que sigue ejecutándose mientras una determinada condición sigue devolviendo verdadero. Después de cada iteración del ciclo while, la condición se vuelve a evaluar. Cuando la condición finalmente devuelve falso, el ciclo while deja de ejecutarse y sale.

Echa un vistazo al siguiente ejemplo:

1
2
3
4
5
x = 50

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

Aquí el bucle seguirá ejecutándose hasta que el valor de x se vuelva negativo. La variable x inicialmente tiene un valor de 50 y durante cada iteración lo decrementamos en 5. Entonces, después de 10 iteraciones, el valor se volverá negativo y el ciclo dejará de ejecutarse.

La salida se verá así:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
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.

Note que hay una diferencia entre hacer una tarea repetidamente y hacer una tarea varias veces. Los bucles se utilizan cuando tiene que realizar una tarea repetidamente en secuencia. Las funciones, por otro lado, se usan cuando tiene que realizar la misma tarea en diferentes lugares a lo largo de su código.

Considere un escenario en el que tiene que imprimir una declaración larga para 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 quiera que imprima la declaración.

Echa un vistazo al siguiente ejemplo:

1
2
3
4
5
6
7
8
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 la palabra clave def seguida del nombre de la función, que es displayWelcome en el ejemplo anterior. Puede usar cualquier nombre de función, pero para usar 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 tienes que usar dos puntos y en la siguiente línea se define el cuerpo de la función. Una función generalmente termina con una declaración return, 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á:

1
2
3
4
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 declaración "Haz algo aquí", y una vez después, que coincide con el orden de nuestras llamadas a funciones dentro del código.

Puedes imaginar lo importante que es esto para la programación. ¿Qué pasa si necesitamos 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 solo una variable que se le da a la función de la persona que llama.

Escribamos una función que agregue dos números que se le pasan como parámetros entre paréntesis:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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 función addNumbers, que acepta dos valores de la llamada a la función. Los valores se almacenan en las variables n1 y n2. Dentro de la función, estos valores se agregan y almacenan en la variable r. El valor en la variable r luego se devuelve a la persona que llama a la función.

En la primera llamada a addNumbers pasamos dos valores, 10 y 20. Tenga en cuenta que el orden de los parámetros importa. El primer valor en la llamada de 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á en n1 y 20 se almacenará en n2. Luego mostramos el resultado de la función a través de la instrucción print. Esta función se llama un total de tres veces, cada vez con diferentes valores de parámetros.

El resultado del código anterior será:

1
2
3
30
100
40

Puedes ver que cada vez que se llama a la función, nuestra variable resultado contiene la suma de los dos números pasados.

Listas, tuplas y diccionarios

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

  • Cómo se colocan 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.

Listas

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

Veamos cómo crear una lista simple:

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

Puede ver que hemos almacenado cadenas, un número y un valor 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.

Acceso a los elementos de la lista

Para acceder a un elemento de 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 llama indexación basada en cero.

Echa un vistazo a este código:

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

Aquí estamos accediendo al primer y quinto elemento de la lista randomlist. La salida será:

1
2
apple
Mango

También puede haber notado que los elementos de la lista permanecen en el orden en que están almacenados. Permanecerán en el mismo orden a menos que se muevan explícitamente o se eliminen.

Asignación de 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 realmente el valor.

Vea el código a continuación:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 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.

Adición de elementos de lista

En la última subsección, mostramos cómo asignar un valor a una lista, pero esto solo se aplica si ya existe un elemento en esa posición. ¿Qué sucede 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 función append().

1
2
3
4
5
6
7
8
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 función append. Nuestra lista ahora tiene un total de 6 elementos, incluido nuestro nuevo valor.

Eliminación de elementos de la lista

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

1
2
3
4
5
6
7
8
randomlist = ['apple', 'banana', True, '10', 'Mango']

print(randomlist)

# Remove the second element
del randomlist[1]

print(randomlist)

Aquí eliminamos el segundo elemento de la lista randomlist. Usamos la instrucción print para mostrar la lista antes y después de eliminar el elemento. La salida será la siguiente:

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

tuplas

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

En términos de sintaxis, las tuplas difieren de las listas en que usan paréntesis, 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 de la misma manera y se conserva el orden de los elementos, al igual que las listas.

Así es como puedes crear una tupla:

1
randomtuple = ('apple', 'banana', True, '10', 'Mango')
Acceso a elementos de tupla {#acceso a elementos de tupla}

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

1
2
3
4
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 era de esperar, esto daría como resultado el siguiente resultado:

1
2
banana
Mango
Asignación de 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:

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

Intentar una asignación como esta genera el siguiente error:

1
TypeError: 'tuple' object does not support item assignment
Eliminación de un elemento de tupla

No puede eliminar un elemento de tupla individual. Intentar hacerlo daría como resultado un error, tal como mostramos cuando intenta reasignar un elemento:

1
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:

1
2
3
4
5
6
7
randomtuple = ('apple', 'banana', True, '10', 'Mango')

print(randomtuple)

del randomtuple

print(randomtuple)

Si intenta acceder a una tupla eliminada, como en la segunda instrucción “imprimir” anterior, recibirá el siguiente mensaje de error:

1
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 las listas porque son almacenes de clave-valor. Esto significa que le asigna a cada valor una clave (por lo general, una cadena o un número entero) que se puede usar 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 está separado del otro por una coma, y ​​todos los elementos se almacenan entre corchetes. Ver el siguiente código:

1
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 auto 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 {#acceder a los elementos del diccionario}

Se accede a los elementos del diccionario utilizando sus claves. Por ejemplo, si desea acceder al primer elemento, deberá utilizar su clave, que en este caso es 'Make'. Echa un vistazo al siguiente ejemplo para ver la sintaxis:

1
2
3
4
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í:

1
2
Honda
Civic

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

Asignación de valores a los elementos del diccionario

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

1
2
3
4
5
randomdict = {'Make': 'Honda', 'Model': 'Civic', 'Year': 2010, 'Color': 'Black'}

print(randomdict['Make'])
randomdict['Make'] = 'Audi'
print(randomdict['Make'])

La salida tendrá esto:

1
2
Honda
Audi
Eliminación de 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:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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á:

1
2
3
4
5
6
7
{'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

Tenga en cuenta que dado que eliminamos el diccionario al final, se arroja un error que indica que randomdict no está definido.

Aplicación de ejemplo

Ahora que hemos repasado muchos de los conceptos más básicos de Python, démosle un buen uso y creemos una aplicación simple usando lo que aprendimos.

Digamos que tiene tantos autos que simplemente no puede hacer un seguimiento de todos, entonces crearemos una aplicación para que lo haga por usted. Funcionará preguntándole continuamente si desea agregar autos a su inventario y, si lo hace, le pedirá los detalles del auto. Si no lo hace, la aplicación imprimirá los detalles de todos sus autos y saldrá.

Aquí está el código completo, que explicaremos en detalle en el resto de esta sección:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 del diccionario, que contendrá detalles como "Marca", "Modelo", etc.

La segunda línea de código usamos una función integrada 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 ingresado por el usuario se guarda en la variable add_inventory.

Luego verificamos si el usuario desea agregar inventario buscando un carácter "y". Si el usuario desea agregar inventario, entonces usamos la función raw_input() nuevamente para recopilar información sobre el automóvil. Una vez que tenemos todo lo que necesitamos, creamos una variable automóvil que almacena un diccionario con todos los datos de nuestro automóvil. Este objeto de diccionario luego se guarda en nuestra lista automóvil usando el método append(), que puede recordar agrega nuestro elemento al final de la lista.

Usando un "bucle while", verificamos continuamente si el usuario desea agregar más autos a su inventario. Esto podría continuar mientras el usuario siga ingresando "y" en el mensaje "¿Agregar inventario?", que es exactamente para lo que sirven los "bucles while".

Cuando el usuario finalmente ingrese "n" (o cualquier carácter que no sea "y"), imprimiremos una lista completa de su inventario para ellos. Esto se hace usando un "for-loop". Para cada elemento de la lista, almacenamos el elemento actual en la variable temporal c y recuperamos todos los datos relevantes del automóvil usando sus claves, que luego imprimimos en la pantalla usando concatenación de cadenas (o "adición") . Esto suma las dos cadenas para convertirse en una antes de que se imprima en la pantalla.

Ejecutar este código a través de la línea de comando puede verse así:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$ 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? {#que sigue}

Este artículo proporciona una introducción muy básica al lenguaje de programación Python. Hemos tocado 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 sugiero encontrar más recursos sobre cada uno. Para obtener más información, personalmente recomiendo tomar un curso como Complete Python Bootcamp: pase de cero a héroe en Python, que lo guiará a través de todos los conceptos más importantes con mayor detalle.

Otra excelente es la Clase magistral completa de Python, que va más allá en cosas como la programación orientada a objetos e incluso las bases de datos.

Una vez que se familiarice con 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 de hoy en día se basan en principios orientados a objetos. Como se explicó al principio, Python se usa ampliamente para el desarrollo web, el aprendizaje automático, la ciencia de datos y los microcontroladores, así que pruebe un poco de todo y vea qué nicho es más interesante para usted.

¿Qué piensas de Python hasta ahora? ¿Para qué piensas usarlo? ¡Cuéntanos en los comentarios!

Licensed under CC BY-NC-SA 4.0