2.6 Datos lógicos o booleanos (clase bool)
Contiene únicamente dos elementos True y False que representan los valores lógicos verdadero y falso respectivamente.
False tiene asociado el valor 0 y True tiene asociado el valor 1.
- Operadores lógicos: == (igual que), > (mayor), < (menor), >= (mayor o igual que), <= (menor o igual que), != (distinto de).
- not b (negación): Devuelve True si el dato booleano b es False , y False en caso contrario.
- b1 and b2: Devuelve True si los datos booleanos b1 y b2 son True, y False en caso contrario.
- b1 or b2 : Devuelve True si alguno de los datos booleanos b1 o b2 son True, y False encaso contrario.
Las siguientes funciones convierten un dato de un tipo en otro, siempre y cuando la conversión sea posible.
- int() convierte a entero.
Ejemplo. int(’12’) 12 int(True) 1
int(‘c’) Error
float() convierte a real.
Ejemplo. float (‘3.14’) 3.14
float(True) 1.0
float (‘ III’) Error
str() convierte a cadena.
Ejemplo. str(3.14) ‘3.14’ str(True) ‘True’
bool() convierte a lógico.
Ejemplo. bool (‘0’) False
bool(‘3.14’) True
bool(») False
bool(‘Hola ‘) True
Una variable es un identificador ligado a algún valor.
Reglas para nombrarlas:
- Comienzan siempre por una letra, seguida de otras letras o números.
- No se pueden utilizarse palabras reservadas del lenguaje.
A diferencia de otros lenguajes no tienen asociado un tipo y no es necesario declararlas antes de usarlas (tipado dinámico).
Para asignar un valor a una variable se utiliza el operador = y para borrar una variable se utiliza la instrucción del.
Para asignara una variable un valor introducido por el usuario en la consolase utiliza la instrucción input(mensaje) : Muestra la cadena mensaje por la terminal y devuelve una cadena con la entrada del usuario.
El valor devuelto siempre es una cadena, incluso si el usuario introduce un dato numérico.
Para mostrar un dato por la terminal se utiliza la instrucción print(dato1, sep=», end=’\n’, file=sys.stdout)
donde
- datol, … son los datos a imprimir y pueden indicarse tantos como se quieran separados por comas.
- sep establece el separador entre los datos, que por defecto es un espacio en blanco ‘ ‘.
- end indica la cadena final de la impresión, que por defecto es un cambio de línea \n.
- file indica la dirección del flujo de salida, que por defecto es la salida estándar sys. stdout.
Evalúa la expresión lógica condiciónl y ejecuta el primer bloque de código si es True; si no, evalúa la siguientes condiciones hasta llegara la primera que es True y ejecuta el bloque de código asociado. Si ninguna condición es True ejecuta el bloque de código después de else:.
Pueden aparecer varios bloques elif pero solo uno else al final.
Los bloques de código deben estar indentados por 4 espacios.
La instrucción condicional permite evaluar el estado del programa y tomar decisiones sobre qué código ejecutar en función del mismo.
Repite la ejecución del bloque de código mientras la expresión lógica condición sea cierta.
Se puede interrumpir en cualquier momento la ejecución del bloque de código con la instrucción break.
El bloque de código debe estar indentado por 4 espacios.
Alternativa:
Repite la ejecución del bloque de código para cada elemento de la secuencia secuencia, asignado dicho elemento a i en cada repetición.
Se puede interrumpir en cualquier momento la ejecución del bloque de código con la instrucción break o saltar la ejecución para un determinado elemento de la secuencia con la instrucción continué.
El bloque de código debe estar indentado por 4 espacios.
Se utiliza fundamentalmente para recorrer colecciones de objetos como cadenas, listas, tuplas o diccionarios.
A menudo se usan con la instrucción range:
- range(fin) : Genera una secuencia de números enteros desde 0 hasta fin-1.
- range(inicio, fin, salto) : Genera una secuencia de números enteros desde inicio hasta fin-1 con un incremento de salto.
Una lista es una secuencias ordenadas de objetos de distintos tipos.
Se construyen poniendo los elementos entre corchetes [ ] separados por comas. Se caracterizan por:
- Tienen orden.
- Pueden contener elementos de distintos tipos.
- Son mutables, es decir, pueden alterarse durante la ejecución de un programa.
Otra forma de crear listas es mediante la función list().
- list(c) : Crea una lista con los elementos de la secuencia o colección c.
Se pueden indicar los elementos separados por comas, mediante una cadena, o mediante una colección de elementos iterable.
Se utilizan los mismos operadores de acceso que para cadenas de caracteres.
- l[i] : Devuelve el elemento de la lista l con el índice i.
El índice del primer elemento de la lista es 0.
- l[i:j:k] : Devuelve la sublista desde el elemento de 1 con el índice i hasta el elemento anterior al índice j, tomando elementos cada k.
- len(l) : Devuelve el número de elementos de la lista l.
- min(l) : Devuelve el mínimo elemento de la lista l siempre que los datos sean comparables.
- max(l) : Devuelve el máximo elemento de la lista l siempre que los datos sean comparables.
- sum(l) : Devuelve la suma de los elementos de la lista l, siempre que los datos se puedan sumar.
- dato in l: Devuelve True si el dato dato pertenece a la lista l y False en caso contrario.
- l.index (dato) : Devuelve la posición que ocupa en la lista l el primer elemento con valor dato.
- l. count (dato) : Devuelve el número de veces que el valor dato está contenido en la lista l.
- all(l) : Devuelve True si todos los elementos de la lista l son True y False en caso contrario.
- any(l) : Devuelve True si algún elemento de la lista l es True y False en caso contrario.
- H + 12 : Crea una nueva lista concatenan los elementos de la listas l1 y l2.
- l. append (dato) : Añade dato al final de la lista 1.
- l. extend (sequencia) : Añade los datos de sequencia al final de la lista 1.
- l.insert(índice , dato) : Inserta dato en la posición índice de la lista 1 y desplaza los elementos una posición a partir de la posición índice.
- l. remove (dato) : Elimina el primer elemento con valor dato en la lista 1 y desplaza los que están por detrás de él una posición hacia delante.
- l. pop([índice]) : Devuelve el dato en la posición índice y lo elimina de la lista 1, desplazando los elementos por detrás de él una posición hacia delante.
- l. sort() : Ordena los elementos de la lista 1 de acuerdo al orden predefinido, siempre que los elementos sean comparables.
- l. reverse() : invierte el orden de los elementos de la lista 1.
Existen dos formas de copiar listas:
- Copia por referencia l1 = l2: Asocia la la variable 11 la misma lista que tiene asociada la variable l2, es decir, ambas variables apuntan a la misma dirección de memoria. Cualquier cambio que hagamos a través de l1o l2afectará a la misma lista.
- Copia por valor l1 = list(l2): Crea una copia de la lista asociada a l2 en una dirección de memoria diferente y se la asocia a l1. Las variables apuntan a direcciones de memoria diferentes que contienen los mismos datos. Cualquier cambio que hagamos a través de l1 no afectará a la lista de l2y viceversa.