Introducción

Por Juan José Lozano Gómez, fuente: clic aquí.

Características del lenguaje

Python es un lenguaje de programación de alto nivel cuya máxima es la legibilidad del código. Las principales características de Python son las siguientes:

Haz clic en los botones de abajo

El hecho de que Python sea interpretado quiere decir que hace falta un intérprete que permita ejecutar un programa o script escrito en Python sin necesidad de compilarlo.

El intérprete de Python

Cuando instalas Python correctamente (en cualquier sistema operativo) ocurren, entre otras, dos cosas: se añade el comando python (o python3, en caso de que instales la versión 3.x de Python) al path y se instala el intérprete de Python correspondiente.

En el intérprete de Python podemos escribir expresiones e instrucciones que este interpretará y ejecutará.

Tu primer programa en Python

Al crear un archivo, agregamos la extensión .pyal final para que el intérprete lo reconozca como un programa de Python. Por ejemplo: suma.py.

Abre una terminal, ubica el directorio (o carpeta) donde guardaste el archivo y escribe el siguiente comando para que sea interpretado y ejecutado: python3 suma.py.

Editor de código

Te presentamos este editor de código en línea para ayudarte en tus primeros pasos, hasta que te familiarices con la terminal o un editor de código como Visual Studio Code (VSC).

  • Escribe código en la ventana script.py. Si te sientes perdido, hay pistas al presionar el botón Hint.
  • Para hacer un salto y crear nueva línea de código, presiona Enter en tu teclado.
  • Una vez hayas escrito tu código, presiona la tecla Submit para ver el resultado en la ventana Python shell.
  • Si no te viene a la mente ningún código, puedes presionar en el botón Solution, y luego Submit.


# This will get executed each time the exercise gets initialized b = 6 # Crea la variable "Suma", igual a 2+3 # Imprime el resultado # Crea la variable "Suma", igual a 2+3 suma=2+3 # Imprime el resultado print(suma) test_object("suma") test_function("print") success_msg("¡Bien hecho!")
Usa el operador de asignación (=) para crear la variable, y luego la operación. 2+3.

Operadores, expresiones y sentencias

Son las formas básicas que componen la estructura de cualquier programa.


Operador


Un operador es un carácter o conjunto de caracteres que actúa sobre una, dos o más variables y/o literales para llevar a cabo una operación con un resultado determinado.
Ejemplos de operadores comunes son los operadores aritméticos + (suma), - (resta), * (multiplicación o producto), aunque en Python existen otros operadores.


Expresión


Una expresión es una unidad de código que devuelve un valor y está formada por una combinación de operandos (variables y literales) y operadores. Los siguientes son ejemplos de expresiones (cada línea es una expresión diferente):

  1. 5 + 2 --- Suma del número 5 y el número 2
  2. a < 10 --- Compara si el valor de la variable a es menor que 10
  3. b is None --- Compara si la identidad de la variable b es None
  4. 3 * (200 - c) --- Resta a 200 el valor de c y lo multiplica por 3


Sentencia


Una sentencia o declaración es una instrucción que define una acción. Una sentencia puede estar formada por una o varias expresiones, aunque no siempre es así. En definitiva, las sentencias son las instrucciones que componen nuestro programa y determinan su comportamiento.
Ejemplos de sentencias son la asignación = o las instrucciones if, if ... else ..., for o while entre otras.

Variables

Por Juan José Lozano Gómez, fuente: clic aquí.

¿Qué son las variables?

Las variables son uno de los dos componentes básicos de cualquier programa.
Se puede definir como un contenedor, o caja, en el que se almacena un dato.

En su esencia, un programa está compuesto por datos e instrucciones que manipulan esos datos. Normalmente, los datos se almacenan en memoria (memoria RAM) para que podamos acceder a ellos. El dato almacenado en una variable se puede cambiar durante el flujo del programa.

También es importante mencionar el concepto tipo de dato. Al asignar un valor a una variable, dicho valor pertenece a un conjunto de valores conocido como tipo de dato. Un tipo de dato define una serie de características sobre esos datos y las variables que los contienen como, por ejemplo, las operaciones que se pueden realizar con ellos. En Python, los tipos de datos básicos son los numéricos (enteros, reales y complejos), los booleanos (True, False) y las cadenas de caracteres.


Asignar valor a una variable

Cuando asignamos un valor a una variable por primera vez, se dice que en ese lugar se define e inicializa la variable. Para asignar un valor (un dato) a una variable, se utiliza el operador de asignación =. En la operación de asignación se ven involucradas tres partes:

  • El operador de asignación =.
  • Un identificador o nombre de variable, a la izquierda del operador.
  • Un literal, una expresión, una llamada a una función o una combinación de todos ellos a la derecha del operador de asignación.

Ejemplos:
# Asigna a la variable <a> el valor 1
a = 1

# Asigna a la variable <a> el resultado de la expresión 3 * 4
a = 3 * 4

# Asigna a la variable <a> la cadena de caracteres 'Pythonista'
a = 'Pythonista'


Tipos de datos

Por Juan José Lozano Gómez, fuente: clic aquí.

¿Qué son los tipos de datos?

Los tipos de datos definen un conjunto de valores que tienen una serie de características y propiedades determinadas. En Python, todo valor que pueda ser asignado a una variable tiene asociado un tipo de dato.
Un tipo de dato establece qué valores puede tomar una variable y qué operaciones se pueden realizar sobre la misma.


Tipos de datos en Python

Hay varias formas de clasificarlos, pero para una mejor comprensión los dividiremos en dos grandes grupos: tipos de datos básicos, y otros tipos.
Desliza el ratón sobre cada tarjeta para ver a detalle cada uno.


Tipo: básico

Datos numéricos

  • Números enteros int.
  • Números de punto flotante float, representa a los números reales.
  • Números complejos, complex. Tienen una parte real y otra imaginaria.


Tipo: básico

Datos booleanos

  • True, representa verdadero.
  • False, representa falso


Tipo: básico

Cadenas de caracteres

  • String str: Es un conjunto de caracteres o letras.

Tipo: otros

Otros tipos de datos

  • Secuencias: Los tipos list, tuple y range.
  • Mapas: El tipo dict
  • Conjuntos: El tipo set

Conocer el tipo de una variable

Hay dos funciones que nos ayudan a saber el tipo de una variable:

  • type() recibe como parámetro un objeto y te devuelve el tipo del mismo. Escríbelo como en este ejemplo: type(3) para saber qué tipo de dato es el objeto 3.
  • isinstance() recibe dos parámetros: un objeto y un tipo. Devuelve True si el objeto es del tipo que se pasa como parámetro y False en caso contrario. Escríbelo como en este ejemplo: isinstance(3, bool) para saber si el objeto 3 es (o no) un tipo de dato booleano.

Puedes practicarlo en el editor de código:


# This will get executed each time the exercise gets initialized b = 6 # Asigna el valor 3 a la variable a # Averigua qué tipo de dato es el 3 # Confirma si el 3 es de tipo booleano # Asigna el valor 3 a la variable a a=3 # Averigua qué tipo de dato es el 3 type(3) # Confirma si el 3 es de tipo booleano isinstance(3,bool) test_object("a") test_function("type") success_msg("¡Bien hecho!")
Función type(objeto). Función isinstance(objeto,tipo).

Conversión de tipos

Imagina que tienes una variable edad de tipo string cuyo valor es '25'. Se podría decir que edad, aunque realmente es una cadena de caracteres, contiene un número. Sin embargo, si intentas sumar 10 a edad, el intérprete te dará un error porque edad es de tipo str y 10 un tipo numérico.
¿Cómo puedo tratar la variable edad como un número? Convirtiéndola a un tipo numérico, por ejemplo, al tipo int. Para ello, Python ofrece las siguientes funciones:

  • str(): Devuelve la representación en cadena de caracteres del objeto que se pasa como parámetro.
  • int(): Devuelve un int a partir de un número o secuencia de caracteres.
  • float(): Devuelve un float a partir de un número o secuencia de caracteres.
  • complex(): Devuelve un complex a partir de un número o secuencia de caracteres.


Operadores en Python

Por Juan José Lozano Gómez, fuente: clic aquí.


Los operadores son símbolos reservados por el propio lenguaje que se utilizan para llevar a cabo operaciones sobre uno, dos o más elementos llamados operandos. Los operandos pueden ser variables, literales, el valor devuelto por una expresión o el valor devuelto por una función.

Tipos de operadores

Concatenación

Consiste en unir dos cadenas en una sola, siendo el resultado un nuevo string, usando el operador +.


Lógicos o booleanos

Tenemos a nuestra disposición los operadores and, or y not. Los resultados son basados en las tablas de verdad.


Comparación

Para comparar dos o más valores. El resultado de estos operadores siempre es True o False.
Pasa el mouse por encima de cada operador para ver más detalles.



Aritméticos

Permiten realizar las diferentes operaciones aritméticas del álgebra: suma, resta, producto, división, etc.



Asignación

El operador de asignación se utiliza para asignar un valor a una variable con el signo =. También existen otros operadores de asignación compuestos que realizan una operación básica sobre la variable a la que se le asigna el valor. Por ejemplo, x += 1 es lo mismo que x = x + 1. Los operadores compuestos realizan la operación que hay antes del signo igual, tomando como operandos la propia variable y el valor a la derecha del signo igual.


Operadores de pertenencia

Los operadores de pertenencia se utilizan para comprobar si un valor o variable se encuentran en una secuencia (list, tuple, dict, set o str). El operador in ayuda a verificar si el valor se encuentra en una secuencia, y en el caso contrario se usa el operador not in.


Identidad

Los operadores de identidad se utilizan para comprobar si dos variables son, o no, el mismo objeto. Se usan is e is not.


Prioridad de los operadores en Python

Al igual que ocurre en las matemáticas, los operadores en Python tienen un orden de prioridad. Este orden es el siguiente, de más prioritario a menos prioritario:

  1. Aritméticos (con el mismo orden de prioridad que en las matemáticas)
  2. A nivel de bits
  3. Identidad y pertenencia
  4. Comparación
  5. Booleanos
  6. Asignación

Este orden de prioridad se puede alterar con el uso de los paréntesis ().

Sentencia if

Por Juan José Lozano Gómez, fuente: clic aquí.


En Python, if es una de las principales sentencias de control de flujo, junto a while y for. La sentencia if de control de flujo tiene diferentes alternativas, que veremos a continuación.

Alternativas de la sentencia if

if: Sentencia básica


La estructura básica de esta sentencia if es la siguiente:



if condición:
    bloque de código

Es decir, solo si la condición se evalúa a True, se ejecutarán las sentencias que forman parte del bloque de código. En caso de que se evalúe a False, no se ejecutará ninguna sentencia perteneciente al bloque de código.
Aquí, la condición puede ser un literal, el valor de una variable, el resultado de una expresión o el valor devuelto por una función.


Sentencia if... else


Es posible que te encuentres situaciones en que una decisión dependa de más de una condición. En estos casos se usa una sentencia if compuesta, cuya estructura es como se indica a continuación:



if condición:
    bloque de código
else:
    bloque de código 2

Es decir, solo si la condición se evalúa a True, se ejecutará el primer bloque de código. En caso de que la condición se evalúe a False, se ejecuta el bloque de código 2.


Sentencia if... elif...else


Su estructura es la siguiente:



if condición 1:
    bloque de código 1
elif condición 2
    bloque de código 2
else:
    bloque de código 3

Es decir, si la condición 1 se evalúa a True, se ejecutará el bloque de código 1. En caso que sea False, pasamos a la condición 2 expresado en el elif, si la condición 2 es true, se ejecuta el bloque de código 2. Pero si esta también es false, pasamos al else para ejecutar el bloque de código 3.


Sentencias if anidadas


En cualquiera de los bloques de sentencias anteriores se puede volver a incluir una sentencia if, o if … else … o if … elif … else …
Por ejemplo, podemos simular el caso de la siguiente manera:


x = 28
if x < 0:
    print(f'{x} es menor que 0')
else:
    if x > 0:
        print(f'{x} es mayor que 0')
    else:
        print('x es 0')

El Zen de Python

Por Tim Peters

  • La belleza es mejor que la fealdad.
  • Lo explícito es mejor que lo implícito.
  • Lo simple es mejor que lo complejo.
  • Lo complejo es mejor que lo complicado.
  • Lo plano es mejor que lo anidado.
  • Lo disperso es mejor que lo denso.
  • La legibilidad cuenta.
  • Los casos especiales no son lo suficientemente especiales como para romper las reglas.
  • Aunque la practicidad le gana a la pureza.
  • Los errores nunca deberían pasar silenciosamente.
  • A menos que estén explícitamente silenciados.
  • Ante la ambigüedad, rechaza la tentación de adivinar.
  • Debería haber una-- y preferiblemente solo una --forma obvia de hacerlo.
  • Aunque esa forma no sea obvia al principio a menos que seas holandés.
  • Ahora es mejor que nunca.
  • Aunque nunca es a menudo mejor que *justo* ahora.
  • Si la implementación es difícil de explicar, es una mala idea.
  • Si la implementación es fácil de explicar, puede ser una buena idea.
  • Los espacios de nombres son una gran idea — ¡hagamos más de eso!