Mathematics">
Nothing Special   »   [go: up one dir, main page]

Tema 2. Apuntes A Mano (Imprimir)

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

TEMA 2: TIPOS DE DATOS BÁSICOS, OPERADORES Y

ENTRADA/SALIDA
1. TIPOS DE DATOS BÁSICOS, OPERADORES Y ENTRADA/SALIDA
1.1. Palabras reservadas
En Python existen palabras con un significado especial para el intérprete que no se pueden utilizar para ningún otro propósito, exclusivamente se pueden usar para el fin
que han sido creadas. He aquí la lista de las 34 palabras reservadas del intérprete de Python 3: and, as, assert, async, await, break, class, continue, def, del, elif, else,
except, False, finally, for, from, global, if, import, is, ambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with y yield.
1.2. Comentarios
Los comentarios en Python son líneas dentro de código que el intérprete ignora a la hora de ejecutar el programa. Sirve tanto para facilitar la lectura de código a personas
que no lo hayan desarrollado como para, en el futuro, recordar que hace nuestro programa y cómo lo hace.
Escribir comentarios, aunque requiere un esfuerzo, pero es una muy buena práctica.
Hay dos formas de escribir comentarios en Python:
 De una sola línea: Mediante el símbolo de almohadilla (#) conseguiremos que el intérprete
de Python ignore todo lo que haya detrás de ella hasta el final de la línea.
 Multilínea: Delimitando el comentario entre los caracteres de triples comillas dobles (“””)
o simples (‘’’) conseguiremos que el intérprete de Python ignore todo lo que hay entre
dichos delimitadores.
Un dato a tener en cuenta es que los comentarios multilínea en Jupyter Notebook no son aceptados, por lo que sólo podremos utilizar comentarios de una sola línea.
1.3. Tipos de datos básicos
Un tipo de dato es un atributo de los datos que indica al sistema y al programador sobre la clase de datos que van a almacenar. Esto incluye imponer restricciones en los
datos como qué valores pueden tomar y qué operaciones se pueden realizar. Por ejemplo, un tipo de dato numérico sólo puede almacenar números, y un tipo de dato
booleano sólo puede almacenar dos estados, verdadero o falso. Según el tipo de datos que se utilice para definir una variable ocupa más o menos espacio en memoria.
Los tipos de datos los podemos dividir en básicos, que son los nativos del lenguaje y avanzados, que son una extensión de los nativos.
Ahora veremos los tipos de datos básicos (numéricos, cadenas de caracteres y lógicos), los avanzados (listas, tupla, conjunto y diccionario)
los veremos más adelante.
Los tipos de datos básicos en Python son: Numeric (Integer, Float and Complex Number), Boolean and Strings.

NUMÉRICOS
Este tipo de datos lo utilizamos para representar números. Dentro de estos datos diferenciamos tres tipos:
 Enteros (Integer): Este tipo de datos comprende el conjunto de todos los números enteros, aquellos que no tienen decimales, pero como dicho
conjunto es infinito, en Python el conjunto está limitado realmente por la capacidad de la memoria disponible, no hay un límite de representación
impuesto por el lenguaje.
 Decimales o flotantes (Float): Este tipo de dato comprende el conjunto de todos los números reales, aquellos que tienen una parte entera
y una parte decimal. Al igual que los números enteros no existe un límite de representación impuesto por el lenguaje.
 Complejos (Complex): Este tipo de datos comprende los números compuestos de una parte real y una parte imaginaria, ambas partes se
representan como tipo flotante, por lo que un número complejo constará a su vez de dos partes diferenciadas de tipo float, una la parte real y
otra la imaginaria.
CADENAS DE CARACTERES (STRINGS)
Las cadenas de caracteres, son secuencias inmutables que contienen caracteres encerrados entre comillas, bien dobles (“”) o bien
simples (‘’). En Python existe una función print () que nos permite mostrar correctamente el valor de una cadena u otros valores o
variables por pantalla. Se utiliza de la manera descrita a la derecha.
LÓGICOS O BOOLEANOS (BOOLEAN)
Representa la mínima expresión racional, los valores verdaderos (True o 1) o falsos (False o 0). Los tipos de datos booleanos se utilizan habitualmente para
guardar en todo momento el estado de una propiedad o característica.
1.4. Variables
Este es un concepto fundamental de la programación, en el cuál se define un identificador y se le asigna un valor y más adelante
podremos utilizarlas como si se tratase de un valor literal, incluso operarlas entre otras variables y volver a asignarles un valor en
cualquier momento.
En realidad, una variable es un lugar en la memoria donde almacenar un dato, cuyo valor podremos variar durante la ejecución del
programa. Tiene un nombre, un valor y es de un tipo. Como vimos anteriormente según el tipo de dato que se utilice para definir
una variable ocupa más o menos espacio en memoria.
El contenido de una variable es su valor, almacenado en memoria. Cualquier operación realizada sobre una variable se realiza sobre
un valor. El continente no es más que la asociación de un nombre, llamado identificador, y una dirección de memoria que apunta hacia el contenido, es decir, el valor
asociado a dicho nombre.
Las reglas para conformar el identificador de una variable son:
 Las palabras reservadas no se pueden utilizar como identificadores.
 No se permiten espacios en blanco.
 No se pueden incluir símbolos especiales, tales como !, @, #, $, %
 No está permitido utilizar un dígito como primer carácter.

Y unas buenas prácticas en el uso de variables implican:


 Utilizar sólo letras minúsculas, mayúsculas, dígitos o el guion subrayado (_).
 Comenzar siempre con una letra minúscula.
 Utilizar nombres descriptivos, aunque sean largos y compuestos por varias palabras.
 Existen distintos métodos para separar el conjunto de palabras que conforman una variable y hacerla más legible. Uno, el más habitual, consiste en capitalizar
cada palabra agrupada (camelCase) y otro consiste en separar cada palabra con un guion subrayado (snake_case). La longitud recomendable es de 2 a 4 palabras
o entre 8 y 20 caracteres.
La asignación de un valor a una variable se realiza con el operador de asignación =, que veremos más adelante. Es reseñable decir que
en Python la asignación no imprime el resultado por pantalla, al contrario de como sucede en MATLAB y Octave (salvo que se incluya el
punto y coma al final). La mejor manera de visualizar la variable que acabamos de asignar es la que se ve a la derecha (cuidado, porque
esto solo es válido en Jupyter Notebook)
1.5. Constantes
Una constante es un lugar en la memoria donde almacenar un dato, cuyo valor no podremos variar durante la ejecución del programa. Tiene un
nombre, un valor y es de un tipo. En Python no existen las constantes, y para solventar este problema la solución más común y práctica es utilizar
variables.
Las reglas para conformar el identificador o nombre de una constante son las mismas que para las variables.
Las buenas prácticas en el uso de variables implican:
 Utilizar sólo letras mayúsculas, dígitos o el guion subrayado (_)
 Utilizar nombres descriptivos, aunque sean largos y compuestos por varias palabras.
 En este caso, el conjunto de palabras que conforman una constante no se separa (TODOUNIDO) y o bien se separa cada palabra con un guion subrayado
(TODO_UNIDO). Como en las variables la longitud recomendable es de 2 a 4 palabras o entre 8 y 20 caracteres.
2. OPERADORES EN PYTHON
Existen cuatro tipos de operadores en Python, de asignación, aritméticos, relacionales o de comparación y lógicos.
2.1. Operadores de asignación
Permiten asignar un valor a una variable, usando para ello el operador “=”. Estos operadores permiten realizar la llamada asignación aumentada, técnica que implica un
código más corto de escribir a la vez que más eficiente en tiempo de ejecución. Esta asignación aumentada se realiza generalmente entre operadores numéricos.
Los operadores de asignación son:
En esta imagen vemos la manera de realizar una asignación simple:

En esta otra imagen vemos como realizar asignaciones aumentadas y su relación con la asignación simple:
También podemos realizar asignación múltiple de la manera que se muestra a
continuación. Vemos como en “x” se guardará el 1 y en “y” se guardará el 2
mediante la instrucción que se ve a continuación:

Al crear una estructura de cálculo con variables, podemos fácilmente adaptar sus
valores para hacer distintas comprobaciones:

2.2. Operadores aritméticos


Nos permiten, básicamente, realizar cualquier operación aritmética que necesitemos entre operadores numéricos. Los operadores aritméticos son los siguientes, colocados
por orden de precedencia:
En las siguientes imágenes observamos distintas operaciones realizadas con alguno de estos
operadores:

2.3. Operadores relacionales


Nos permiten comparar dos o más valores y nos devuelven un resultado booleano (verdadero o falso)

2.4. Operadores lógicos


Nos permiten unir valores comparados o negar (invertir) un valor. Nos devuelven un resultado booleano (verdadero o falso)
La tabla de verdad de los operadores lógicos es la tabla donde se muestran
todas las combinaciones posibles de los operadores lógicos con dos
operadores. Es el resultado de aplicar los operadores lógicos a dos entradas,
en el caso de Y y del O y de una en al caso del NO. Hemos de tener en cuenta
que un 0 equivale a False y un 1 a True.

2.5. Precedencia de los operadores


Hemos visto operadores relacionales, lógicos, aritméticos. Pero cuando se unen diferentes tipos de operadores existen unas reglas
de precedencia. Primero, los paréntesis porque tienen máxima prioridad, en segundo lugar, las expresiones aritméticas respetando
sus propias reglas, en tercer lugar, las expresiones relacionales o de comparación y en cuarto y último lugar, las expresiones lógicas.
2.6. Cambiando tipos de variables
Convertir variables de un tipo a otro se denomina casting. En Python podemos comprobar el tipo de una variable
mediante la función type () o bien mediante la función isInstance () como se muestra en la imagen de la derecha.
Podemos cambiar el tipo de una variable mediante las funciones int (), float (), complex () y str ().

Pero como todos los cambios anteriores se ejecutan inmediatamente, los datos no se almacenan en ninguna variable
por lo que después no podemos comprobar si el cambio de tipo fue el correcto con la función type (). Vamos a hacerlo
un poco mejor.
Si intentamos realizar un casting de una variable del tipo texto (string) a un entero, solo funcionara si la cadena de
caracteres, en su interior, contiene caracteres que se pueden transformar a números, en el momento en el que existan
caracteres del tipo letra, nos dará error.

Otras funciones que nos pueden ayudar bastante en la conversión y manejo de números son round () que nos permite redondear un número a su
entero más cercano, max () que nos devolverá el número mayor de una secuencia de números pasada como parámetro y min () que nos devolverá
el número menor de una secuencia de números pasada como parámetro.

2.7. Trabajando con cadenas de caracteres


Para incluir unas comillas dentro de una cadena de caracteres debemos recurrir a cualquiera de las dos opciones que se
ven a continuación, bien jugar con la alternancia entre comillas dobles y simples o bien utilizar el carácter de barra
invertida o backslash (\).

Una cosa a tener en cuenta es que al copiar código de un procesador de textos debe tenerse especial cuidado porque es posible que las comillas no se correspondan con
las utilizadas en Python, por lo que el intérprete no lo entenderá como una cadena y dará error. También puede ocurrir este error cuando se descarga código fuente
codificado en otra región del mundo donde la codificación de caracteres sea diferente y el carácter de la comilla no sea igual que en España. Normalmente hay menos
problemas con la doble comilla que con la comilla simple.
Una de las operaciones más comunes que se puede realizar con cadenas es la concatenación o suma de cadenas. Se suele
realizar con el operador + aunque hay varias formas de realizarla.

También es posible realizar una multiplicación de cadenas:

Los índices nos permiten posicionarnos en un carácter específico de una cadena y acceder a él. Representan un
número [índice], que empezando por el 0 indica el carácter de la primera posición, y así sucesivamente.

El slicing (rebanando) es una capacidad que tienen las cadenas de devolver un subconjunto o subcadena utilizando dos índices [inicio: fin].
Si en el slicing no se indica un índice se toma por defecto el principio y el final (incluidos)
Si un índice se encuentra fuera del rango de cadena, el intérprete de Python dará error:
Pero con slicing esto no pasa y simplemente se considera el
espacio como vacío:

Una propiedad de las cadenas es la inmutabilidad, no se pueden modificar. Si intentamos reasignar un carácter, no nos dejará:
Sin embargo, utilizando slicing y concatenación podemos generar nuevas cadenas fácilmente:

Una función muy útil que soportan las cadenas es len (), que nos permite saber su longitud (el número de caracteres que contienen)
2.8. La función print ()
Para concatenar cadenas dentro de la función print podemos hacerlo de dos formas diferentes, bien separando las cadenas con una coma,
con lo que se insertará un espacio en blanco entre ellas.
O bien separarlas con un espacio en blanco en lugar de utilizar la coma, de esta manera no se insertará ningún espacio en blanco entre ellas.

Como se aprecia anteriormente, la función print () incluye un salto de línea cada vez que se ejecuta. Si se quiere que Python no añada un salto
de línea al final de un print() se definirá el argumento end con el carácter que se desee implementar como terminador de línea.

Es posible asignar cadenas a variables y la forma correcta de mostrarlas es con la función print ().
3. ENTRADA Y SALIDA DE DATOS
3.1. Entrada de datos por teclado
La entrada de datos por teclado se realiza mediante la función input (), que nos devolverá el valor tecleado hasta la pulsación de la tecla INTRO como una cadena de
caracteres. En la siguiente imagen vemos su uso y comprobamos que el tipo de valor recibido es una cadena de caracteres.
Si a la función input () le pasamos como parámetro una cadena de
caracteres, dicha cadena nos aparecerá como mensaje antes de
leer el valor.

Al recibir un valor mediante esta función hay que tener en cuenta que siempre se recibe una cadena de caracteres
(string) y que no podremos tratarla como un número.

Para tratar el valor recibido como un número entero y poder operar con él debemos realizar un casting a un valor entero (integer) como se ve en la imagen.

Si lo que queremos es tratar el valor recibido como un número decimal y poder operar con él debemos realizar un casting a un valor decimal (float) como se ve en la
imagen:

Para permitir la introducción de múltiples valores recurriremos a la instrucción for, que veremos más adelante:

3.2. Salida de datos por pantalla


Ya hemos visto que la función print () es la forma general de mostrar información por pantalla. Ahora vamos a profundizar un poco más
en ella:
Esta función acepta caracteres especiales como las tabulaciones (/t) o los saltos de línea (/n):

Para evitar los caracteres especiales, debemos indicar que una cadena es cruda (raw),
anteponiendo una r a la cadena de caracteres a mostrar, como se ve a continuación:
Podemos utilizar “”” (triples comillas) para cadenas multilínea:

Utilizando el parámetro sep podemos separar cada uno de los caracteres de la cadena con el carácter indicado y con el parámetro end
podemos finalizar la cadena con el carácter que le indiquemos:

Existe una funcionalidad en las cadenas de texto que nos permite formatear información cómodamente utilizando
identificadores referenciados, para ello usamos el método format ().

Mediante el método format () también podemos referenciar a partir de la posición de los valores utilizando índices.

O podemos utilizar un identificador con una clave y luego pasarlas al método format ().

También podemos realizar un formateo avanzado, alineando a la derecha en 30 caracteres de la siguiente manera

O bien alineando a la izquierda en 30 caracteres O bien alineamiento al centro en 30 caracteres: Para realizar un truncamiento de 3 caracteres:

Y combinando varios de estos formatos hacemos un alineamiento a la derecha en 30 caracteres con truncamiento de 3:

Y, por último, para formatear números enteros, rellenados con ceros, procedemos de la siguiente manera:

Y eso mismo si lo quisiéramos hacer con números decimales o flotantes, hacemos lo siguiente:

También podría gustarte