Contenidos
Estructuras de control en Python
Para las estructuras de control, Python posee las sentencias de control típicas de los lenguajes de alto nivel
Declaración de variables
A las variables en Python no se les asigna un tipo predefinido
En Python el tipo de las variables depende del valor que contengan las mismas en cada momento
Por tanto se realiza una conversión automática de tipos
Python reconoce los siguientes tipos de valores:
- Números
- Valores booleanos
true y false
- Strings
- Listas
tipo de datos que asocia valores con un valor numérico poniendo el contenido de la lista entre corchetes, separando cada uno de los elementos mediante una coma
- Tuplas
tipo de datos que asocia valores con un valor numérico poniendo el contenido de la lista entre paréntesis, separando cada uno de los elementos mediante una coma
Tienen la peculiaridad de ser inmutables
- Diccionarios
tipo de datos que asocia un valor a una clave y permite buscar por esas claves
- Objetos
Creados por el programador o predefinidos por el lenguaje
Al tratarse de un lenguaje con tipado dinámico, no es necesario decirle al intérprete su tipo de variable, sino que es él quien decide el tipo que asignará
Los nombres con los que podemos nombrar variables en Python siguen varias normas:
- Los nombres empiezan siempre por letra
- Dentro del nombre se puede usar cualquier letra o número dentro de la codificación utf-8
-
No se pueden usar las palabras reservadas de Python, que son usadas en su sintaxis de su código
Para más información sobre estos nombres consultar en la documentación de Python
Notar que Python distingue entre mayúsculas y minúsculas, por lo que dos variables con el mismo nombre pero que contenga una letra en mayúscula serán entendidas como dos variables distintas
Por ejemplo Variable es diferente de variable
Además existen ciertos convenios para reducir errores y mejorar la legibilidad
Para evitar errores se recomienda no usar ciertos caracteres:
- No usar ni l (ele minúscula) ni I (i mayuscula), ya que dependiendo del tipo de fuente que se use pueden confundirse entre si o con el número 1
- No usar O (o mayúscula) ya que dependiendo del tipo de fuente que se use puede llevar a confusión con el número 0
A fin de favorecer la legibilidad se hacen las siguientes sugerencias:
- nombredevarible es poco legible, por estar todo junto y puede dificultar su legibilidad
- nombreDeVarible es un poco más legible, al aplicar letra mayúscula al iniciar palabra
- nombre_de_variable es la que mejor legibilidad aporta, al aplicar guión bajo al iniciar palabra, que es la forma más recomendada
La sentencia if
La sentencia if tiene la forma:
En caso de que la condición sea verdadera se ejecutará la instrucción 1; en caso contrario se ejecuta si existe la instrucción 2
El uso de la sentencia else es opcional, por eso en la definición se han utilizado los corchetes
Si se omite, sólo se tendrá en cuenta el bloque de instrucciones cuando la condición sea verdadera
Un bloque de instrucciones es un conjunto de instrucciones tabulaciones después de la sentencia if, al saltar de línea después del símbolo :
Son obligatorias ya que le dicen al interprete que el bloque de instrucciones pertenece a la sentencia if
Si se omiten y la condición era verdadera, se ejecutará la siguiente instrucción
En caso contrario, se ejecutará la subsiguiente instrucción, de forma independiente al estado de la condición
De este modo, la omisión de las tabulaciones después de la sentencia if nos permitirá escribirlo todo en una única línea después del símbolo :
La sentencia elif
También podemos utilizar sentencias if anidades mediante la sentencia elif
Las sentencias elif funcionan igual que una sentencia if
Pero sólo se ejecutarán en caso de que la condición de la sentencia if fuese falsa
Podemos añadir opcionalmente una sentencia else al final pero sólo se ejecutará si todas las condiciones anteriores fuesen falsas
La sentencia while
La sentencia while tiene la forma
Si se cumple la condición, se ejecuta la instrucción o el bloque de instrucciones y se repite el proceso hasta que deje de cumplirse la condición
La sentencia for
Este bucle, tiene una sintaxis muy parecida al for-each de Java
Itera una variable var sobre todas las propiedades de un objeto obj que se le pasa
Así para cada valor de var se ejecutaran las sentencias del bucle
Por lo tanto, el bucle tendrá tantas iteraciones como propiedades el objeto y en cada iteración la variable tendrá el valor de la propiedad del objeto correspondiente con dicha iteración
Su sintaxis es:
Iteradores
En Python existen diferentes estructuras que son conjuntos de elementos, son las llamadas colecciones
Este tipo de estructuras son iterables, es decir, se pueden recorrer elemento por elemento
Algunos tipos de variable que son iterables son:
- Cadena de caracteres (str)
- Lista (list)
- Tupla (tuple)
- Diccionario (dict)
Su uso es útil para recorrer elementos de colección como las listas, las tuplas o los objetos
Además, muchas veces queremos repetir un bucle un número determinado de veces
Para esto puede ser útil la función range(n)
Esta función genera un iterable que va desde 0 hasta n – 1
La sentencia break
La sentencia break se puede colocar dentro de un bucle o bucles anidados
Cuando se ejecuta la sentencia break se abandona el bucle más interno
A todos los efectos la sentencia break actúa como un salto a la instrucción siguiente al bucle en el que se ejecuta
La sentencia continue
La sentencia continue, no abandona el bucle si no que hace que se ejecute la siguiente iteración
En el bucle while la ejecución del continue hace que el flujo del programa salte a la condición
En el bucle for la ejecución del continue hace que se ejecute la expresión de incremento, para después continuar normalmente con la condición
Es decir, la ejecución del continue evita que se ejecute el resto del cuerpo del bucle