Tutorial de python – Parte 2 (Operadores, condicionales y bucles)
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:
- Paréntesis
- Exponente
- Multiplicación
- División
- Suma
- 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 y 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 e 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/env 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/env python edad = int(input('¿Cuantos euros tienes?...')) if (edad < 100): print('Te queda poco dinero') else: print('No esta mal')
#!/usr/bin/env 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 y 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/env 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/env 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.