Tutorial de python – Parte 2

Operadores, condicionales y bucles en Python

Como ocurre en otros lenguajes de programación, Python nos ofrece una serie de operadores para realizar ciertas acciones específicas.

A continuación un listado con los tipos de operadores:

Operadores aritméticos

Operador Descripción Ejemplo
+ Suma 3 + 3 = 6
Resta 5 – 4 = 1
Negativo -4
* Multiplicación 5 * 5 = 25
** Exponente 2 ** 3 = 8
/ División 5 / 3 = 1.6666666666666667
// División entera (No devuelve la parte decimal) 5 // 3 = 1
% Residuo 10 % 6 = 4

Este tipo de operadores nos permite realizar operaciones aritméticas entre los operandos para obtener un resultado.

Una regla a tener en cuenta, es la precedencia en las operaciones aritméticas, ya que siguen una secuencia de izquierda a derecha y con esta prioridad:

  1. Paréntesis
  2. Exponente
  3. Multiplicación
  4. División
  5. Suma
  6. Sustracción

A continuación algunos ejemplos:

  • 10 * 5 – 2 = 48 -> 10 * 5 = 50 -> 50 – 2 = 48
  • 10 * (5 – 2) = 30 -> (5 -2) = 3 -> 10 * 3 = 30
  • 10 * 2 ** 3 = 80 -> 2 ** 3 = 8 -> 10 * 8 = 80
  • (10 * 2) ** 3 = 8000 -> 10 * 2 = 20 -> 20 ** 3 = 8000

Algunos operadores aritméticos también nos permiten realizar operaciones sobre cadenas de texto:

Operador Descripción Ejemplo
+ Concatenación ‘Ho’ + ‘la’ = ‘Hola’
* Repetición ‘Hello world’ * 4 = ‘Hello world, Hello world, Hello world, Hello world, ‘

Operadores de relación

Operador Descripción Ejemplo
== Son iguales ‘a’ == ‘a’ -> True, 1 == 1 -> True, 2 == 1 False
!= Son distintos ‘a’ != ‘a’ -> False, ‘b’ != ‘a’ -> True, 3 != 2 -> True
> Es mayor que 5 > 4 -> True, 5 > 6 -> False, ‘a’ > ‘b’ -> False, ‘b’ > ‘a’ -> True
< Es menor que 5 < 4 -> False 5 < 6 -> True, ‘a’ < ‘b’ -> True, ‘b’ > ‘a’ -> False
>= Es mayor o igual que 4 >= 4 -> True, 4 >= 10 -> False
<= Es menor o igual que 4 <= 4 -> True, 4 <= 10 -> True

En este tipo de operadores evaluamos si se cumple una condición entre los valores, devolviendo un valor boleano con el resultado de la evaluación.

Operadores lógicos

Operador Descripción Ejemplo
or Se cumple ‘x’ o ‘z’ True or False = True / False or False = False / 3 == 3 or False = True / 3 != 3 or False = False
and Se cumple ‘x’ y ‘z’ True and True = True / True and False = False
not Contrario ‘x’ not ” = True / not ‘a’ = False / not True = False / not False = True

Estos operadores realizan operaciones lógicas con valores boleanos, aunque también podemos realizar operaciones boleanas con otros tipos de valores que no sean boleanos.

Operadores de pertenencia

Para los operadores in not in, se comprueba si un valor esta dentro de otro, devolviendo un valor boleano con el resultado de la evaluación

  • ‘w’ in ‘Hello world’ => True
  • ‘w’ in ‘Hello Wolrd’ => False
  • ‘w’ not in ‘Hello world’ => False
  • ‘w’ not in ‘Hello World’ => True

Operadores de asignación

Este operador se usa para enlazar un valor a un nombre.

Operador Descripción Ejemplo
= Asignación x = 10, y = 20
+= Suma x = 10, x += 2 -> 12 (x += y, x = x + y)
-= Resta x = 10, x -= 2 -> 8 (x -= y, x = x – y)
*= Multiplicación x = 10, x *= 10 -> 100 (x *= y, x = x * y)
**= Exponencia x = 10, x **= 10 -> 100 (x **= y, x = x ** y)
/= Dividir x = 10, x /= 2 -> 5 (x /= y, x = x / y)
//= Dividir (valor entero) x = 10, x //= 3 -> 3 (x //= y, x = x // y)
%= Residuo (división) x = 6, x %= 4 -> 2 (x %= y, x = x % y)

Operadores de bit

Este operador nos permite realizar cálculos por cada bit que representa un valor en su forma binaria.

Operador Descripción Ejemplo
& AND x = 8 (0b1000), y = 3 (0b0011) -> x & y = 0 (0b1000 & 0b0011 = 0b0000)
| OR x = 8 (0b1000), y = 3 (0b0011) -> x | y = 11 (0b1000 & 0b0011 = 0b1011)
^ XOR x = 8 (0b1000), y = 3 (0b0011) -> x | y = 11 (0b1000 & 0b0011 = 0b1011)
<< Desplazar bits a la izquierda x = 8 (0b1000) -> x << 2 = 32 (0b100000)
>> Desplazar bits a la derecha x = 8 (0b1000) -> x >> 2 = 2 (0b10)

Operadores de identidad

Con los operadores is is not, evaluamos si un identificador se refiere al mismo objeto o tipo.

Operador Descripción Ejemplo
is es type(1) is str -> False, type(1) is bool -> False, type(1) is int -> True
is not no es type(1) is not str -> True, type(1) is not bool -> True, type(1) is not int -> False

Ahora que hemos aprendido los fundamentos de Python gracias al tutorial anterior, sabemos que son los operadores y para que sirven, vamos a dar un paso mas haciendo que nuestro código sea interactivo y también podamos dar formato de salida a nuestros mensajes.

Python nos ofrece una serie de caracteres para dar formato a nuestros mensajes como se muestra en la siguiente tabla:

Caracter Formato
s Texto
d Entero
o Octal
x Hexadecimal
f Flotante
e Flotante en formato exponencial
numero = 1.23456789
print("El numero (%f) se puede formatear con 2 decimales (%.2f) como entero (%d)" % (numero, numero, numero))
El numero (1.234568) se puede formatear con 2 decimales (1.23) como entero (1)
numero = 10
print("El número (%d) se puede formatear a octal (%o) y también a hexadecimal (%x)"% (numero, numero, numero)) 
El número (10) se puede formatear a octal (12) y también a hexadecimal (a)

Continuamos con la entrada de datos y para ello Python nos ofrece una función llamada input(), que nos permite escribir cualquier valor y almacenarlo en una variable.

#!/usr/bin/python
user = input('Buenos días, indicame tu nombre: ')
print ('Bienvenido ' + user)

Condicionales en Python

Las sentencias condicionales son una parte importante, ya que nos permiten tomar diferentes caminos en la ejecución de nuestro código en base a unas condiciones determinadas.

Para tomar esas decisiones hacemos uso de las siguientes palabras clave:

  • if: Se usa para validar una condición y entonces ejecutar el código dentro de ese bloque.
  • elif: Se usa para validar otras opciones y entonces ejecutar el código dentro de ese bloque.
  • else: Se usa para ejecutar el código dentro de ese bloque si no se ha podido cumplir ninguna otra condición.

Estas tres palabras clave se pueden combinar entre si para validar tantas condiciones como necesitemos en nuestro código.

A continuación algunos ejemplos:

#!/usr/bin/python
edad = int(input('¿Cuantos euros tienes?...'))
if (edad < 100):
  print('Te queda poco dinero')
else:
  print('No esta mal')
#!/usr/bin/python
dia = input('Que día de la semana te gusta mas: Lunes, Martes, Miercoles, Jueves, Viernes, Sábado o Domingo.... ')
if (dia == 'Lunes'):
  print('%s, el primer día de la semana' %dia)
elif (dia == 'Martes'):
  print('%s, hoy toca gimnasio' %dia)
elif (dia == 'Miercoles'):
  print('%s, día de película' %dia)
elif (dia == 'Jueves'):
  print('%s, hoy como fuera' %dia)
elif (dia == 'Viernes'):
  print('%s, cena, copa y fiesta!!!' %dia)
elif (dia == 'Sábado'):
  print('%s, compra, limpieza y descanso' %dia)
elif (dia == 'Domingo'):
  print('%s, Manta y película' %dia)
else:
  print('No has indicado ningún día')

Bucles en Python

Un bucle es una secuencia que ejecuta repetidamente un trozo de código mientras que la condición indicada se cumpla.

En Python tenemos while for para realizar bucles, y aunque realizan la misma función la forma en la que se declara y valida no es la misma.

#!/usr/bin/python
# WHILE
numero = int(input('Escribe un número entre el 1 y el 100... '))
cont = 1
if (numero >= 1 and numero <= 100):
  while numero >= cont:
    print('Número (%d) - Contador (%d)' %(numero, cont))
    cont = cont + 1
else:
  print('El número debe estar entre 1 y 100, ambos inclusive')
#!/usr/bin/python
# FOR
cont = 1
end = 100
for i in range(1, end + 1):
  print('For %d de %d'% (i, end))

Con los bucles finalizamos esta segunda parte del tutorial de Python.

Nos vemos en la próxima entrega donde aprenderemos conceptos un poco mas avanzados sobre estructura de datos, clases, funciones y manejos de archivos.