0% encontró este documento útil (0 votos)
71 vistas32 páginas

Asdf Sdasdf

Este documento introduce los tipos de datos básicos en Python como números enteros y reales, booleanos y cadenas, así como expresiones y operadores aritméticos, relacionales y lógicos. También explica el uso de variables, conversión de tipos de datos, y funciones de entrada y salida para interactuar con el usuario.

Cargado por

Joan Airbag
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
71 vistas32 páginas

Asdf Sdasdf

Este documento introduce los tipos de datos básicos en Python como números enteros y reales, booleanos y cadenas, así como expresiones y operadores aritméticos, relacionales y lógicos. También explica el uso de variables, conversión de tipos de datos, y funciones de entrada y salida para interactuar con el usuario.

Cargado por

Joan Airbag
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 32

Fundamentos de Programación

Tema 2. Tipos de datos y variables: definición y uso

Grado en Ciencia de Datos


Objetivos

 Conocer los tipos de datos más básicos en Python: números enteros y


reales, booleanos y cadenas de caracteres.
 Formar y evaluar expresiones combinando distintos tipos de datos.

 Definir y asignar valores a variables.

 Convertir valores entre distintos tipos de datos.

 Usar las funciones básicas de entrada y salida para solicitar datos al


usuario por teclado e imprimir resultados por pantalla.
 Escribir comentarios de una o varias líneas para documentar el código
en Python.

2
Índice

1. Tipos de datos: numéricos, boolean, cadenas


2. Expresiones y operadores (aritméticos, relacionales, lógicos)
3. Variables
4. Operador de asignación
5. Conversión de tipo
6. Documentación de código
7. Entrada/Salida de datos básicos: números enteros y reales y cadenas
de caracteres

3
Tipos de datos

 Cuando se programa en Python, se ha de tener siempre presente qué


tipo de datos tu programa está procesando.
 Un tipo de dato es un conjunto de valores y de operaciones definidas
sobre esos valores.
 El lenguaje Python permite trabajar con varios tipos de datos.
 En este tema presentaremos únicamente los más básicos:

Tipo de dato Conjunto de valores Operadores básicos Ejemplos


int Números enteros + - * // % ** 99 12 2147483647
float Números reales + - * / ** 3.14 2.5 6.022e23
bool Verdadero/falso and or not True False
str Cadenas de caracteres + 'AB' 'Hola' '2.5'

4
Expresiones

 Una expresión es una combinación de valores, variables y operadores


que Python evalúa para producir un valor resultado.
 Muchas expresiones tienen el aspecto de fórmulas matemáticas:
operador operandos (y expresiones)

4 * (6 – 3)
 Python usa unas reglas de precedencia bien definidas para aplicar los
operadores:
 Para operaciones aritméticas, la multiplicación y la división se calculan antes
que las sumas y restas
 Pueden usarse paréntesis para modificar el orden de las operaciones

5
Operadores aritméticos

Operador Operación Comentario

+- Signo Cambio de signo


+ Suma Suma de números reales o enterios
- Resta Resta de números reales o enteros
* Multiplicación Multiplicación de números reales o enteros
División
// entera
División de números enteros, descartando la parte fraccional

% Resto Resto de la división entera


/ División División de números reales
** Potencia Elevar la base al exponente

6
Ejemplos de expresiones aritméticas enteras

Expresión entera Valor Comentario

+99 99 Signo positivo


-99 -99 Signo negativo
--99 99 Signo negativo
5 + 3 8 Suma
5 - 3 2 Resta
5 * 3 15 Multiplicación
5 // 3 1 Sin parte fraccional
5 % 3 2 Resto
5 ** 3 125 Potencia
5 // 0 ZeroDivisionError Error: división por cero
3 * 5 - 2 13 * tiene precedencia
3 + 5 // 2 5 // tiene precedencia
3 - 5 - 2 -4 Asociativo por la izquierda
(3 - 5) - 2 -4 Mejor estilo
3 - (5 - 2) 0 No ambiguo
2 ** 2 ** 3 256 Asociativo por la derecha

7
Ejemplos de expresiones aritméticas reales

Expresión real Valor Comentario

3.141 + 2.0 5.141 Suma


3.141 - 2.0 1.141 Resta
3.141 * 2.0 6.282 Multiplicación
3.141 / 2.0 1.5705 División
Los números reales tienen 17 dígitos de
5.0 / 3.0 1.6666666666666667
precisión como máximo
3.141 ** 2.0 9.865881 Potencia
1.0 / 0.0 ZeroDivisionError Error: división por cero
Error: no se puede representar un
2.0 ** 10000.0 OverflowError
número real tan grande

 Alcontrario que los números enteros, los números reales tienen un


tamaño y una precisión limitados
 Es necesario tenerlo en cuenta, ya que una expresión como
0.1 + 0.1 + 0.1 devuelve el inesperado resultado de 0.30000000000000004

8
Operadores lógicos

 El tipo de dato booleano (bool) representa valores de verdad: verdadero


(True) o falso (False)
 Los operadores definidos para estos valores se conocen como
operadores lógicos, y tienen definiciones familiares:
 a and b es True si ambos operandos son True, y False si alguno de los
dos es False
 a or b es False si ambos operandos son False, y True si alguno de los
dos es True
 not a es True si a es False, y False si a es True

9
Operadores lógicos

 Eloperador not tiene mayor precedencia que el operador and, y este


mayor precedencia que el or
 Se pueden usar paréntesis con los operadores lógicos para crear
expresiones más complejas
 A menudo, la misma función puede formularse de distintas formas. Por
ejemplo, la expresión (a and b) y not (not a or not b) son
equivalentes, como se demuestra en la siguiente tabla de verdad:

10
Operadores relacionales

 Algunos operadores mixtos toman operandos de un tipo y producen


un resultado de otro tipo
 Los más importantes son los operadores relacionales, que se definen para
números enteros y reales, y devuelven un valor booleano:

Operador Significado True False

== Igual 2 == (1 + 1) 2.0 == 3.5

!= Distinto 5.0 != 2.5 (2 * 2) != 4

< Menor 2.5 < 5.0 5 < 5

<= Menor o igual 5 <= 5 5.0 <= 2.5

> Mayor 5.0 > 2.5 5 > 5

>= Mayor o igual 5 >= 5 2.5 >= 5.0

11
Operadores relacionales

 Los operadores relacionales tienen menor precedencia que los


aritméticos, y mayor que los lógicos
 No hace falta, entonces, poner paréntesis en expresiones como:
(2.0*2.0 - 4.0*3.0*5.0) >= 0.0
(5 >= 1) and (5 <= 12)

 Aunque por estilo son recomendables


 Python extiende el concepto de comparación a otros tipos de datos,
como las cadenas de texto
 Los operadores == y != comparan si dos cadenas son iguales o distintas
 Con los comparadores <, <=, > y >=, el comportamiento es más complejo.
Cada carácter de la cadena tiene un código numérico que Python usa para
comparar
• 'abajo' es menor que 'arriba', pero 'Barco' es menor que ambos y 'ábaco' es
mayor
12
Operadores de cadenas de caracteres

 Las cadenas de texto son secuencias de caracteres (letras, dígitos,


símbolos, espacios y caracteres de control)
 Se representan entre comillas simples
 Puede usarse la contrabarra para representar caracteres especiales:

Secuencia Significado
'\t' Tabulador
'\n' Salto de línea
'\\' Contrabarra
'\'' Comilla simple

13
Concatenación de cadenas de caracteres

 Es posible concatenar (unir) dos cadenas de texto mediante el


operador +

Expresión Valor
'Hola, ' + 'Mundo' 'Hola, Mundo'
'123' + '456' '123456'
'1234' + ' + ' + '99' '1234 + 99'
'123' + 456 SyntaxError: el segundo operador no es una cadena

14
Repetición de cadenas de caracteres

 Hay un operador de repetición de cadenas


 El símbolo que lo denota es *, el mismo que para la multiplicación de
enteros y/o reales
 El resultado es la concatenación de la cadena consigo misma, tantas veces
como indique el número entero:

Expresión Valor
'Hola' * 5 'HolaHolaHolaHolaHola'
20 * '-' '--------------------'
6 * '=' + 3 * '(O)' + 6 * '=' '======(O)(O)(O)======'

15
Variables

 Una variable es un nombre asociado a un tipo de dato

 Los programas utilizan variables para almacenar valores a medida que


se van desarrollando los cálculos
 El nombre de una variable es una secuencia de letras, dígitos y
subrayados ( _ )
 El primer carácter del nombre no puede ser un dígito
 Python distingue entre letras minúsculas y mayúsculas
 Algunas palabras están reservadas por el lenguaje (and, import, in, etc.) y no
pueden usarse como nombres de variables
 Ejemplos:
abc abc123
AB_ a_b

16
Reglas de estilo

 Los programadores siguen normalmente unas reglas de estilo a la hora


de dar nombre a sus variables:
 Deben comenzar por una letra minúscula, seguida de otras letras
(mayúsculas o minúsculas) y dígitos
 Se usan las mayúsculas para delimitar las palabras en variables compuestas
por varias de ellas
 Ejemplos: i, x, y, total, esBisiesto, fechaDeNacimiento
 Una variable se considera constante cuando su valor es siempre el
mismo
 La convención, en este caso, es escribir su nombre mediante mayúsculas y
dígitos, y usar el subrayado como separador de palabras
 Ejemplos: VELOCIDAD_DE_LA_LUZ, AZUL_MARINO

17
El operador de asignación

 Para definir una variable en Python usamos el operador de asignación


(=)
 Ejemplo: al escribir a = 1234 , estamos:
 Definiendo el identificador a como una nueva variable
 Asignándole a la variable a el valor entero 1234
 El lado derecho de la asignación puede ser cualquier tipo de expresión
 En ese caso, Python evalúa la expresión y le asigna el resultado a la variable
 Ejemplo:

18
Ejemplo: incremento de una variable

 Elsiguiente código asigna el valor 17 a la variable i, y luego incrementa


en uno su valor:
i = 17
i = i + 1
 Esta es una operación muy común en programación. Los pasos son los
siguientes:
 Crea la variable i y le asigna el valor entero 17
 Python evalúa la expresión i + 1 y obtiene el valor 18
 Asigna este nuevo valor, 18, a la variable i

19
Asignaciones con operador

 Incrementarel valor de una variable es tan frecuente que existe una


forma compacta de hacerlo en Python
 La instrucción i = i + 1 puede escribirse como: i += 1
 Ejemplo:
a = 3
b = 2
a += 4 * b
 El valor final de a será 11
 Todos los operadores aritméticos tienen su asignación con operador
asociada:
Asignación Valor de a Asignación Valor de a
a = 1 1 a //= 3 5
a += 10 11 a %= 2 1
a -= 7 4 a /= 2 0.5
a *= 4 16 a **= 2 0.25
20
Ejemplo: intercambio del valor de dos variables

 El siguiente código intercambia los valores de las variables a y b:


a = 1234
b = 99
t = a
a = b
b = t
 Los pasos son los siguientes:
 a y b tienen inicialmente los valores 1234 y 99, respectivamente
 t = a asigna a t el valor de a (ambos comparten ahora el mismo valor:
1234)
 a = b asigna el valor de b a a (99). El valor que almacena una variable se
pierde cuando se le asigna uno nuevo
 b = t asigna el valor de t a b (1234)
21
Conversión de tipo

 Los programas manejan normalmente distintos tipos de datos


 Es necesario prestar atención al tipo de cada dato para escoger los valores
y las operaciones a realizar con él
 Python convierte automáticamente los enteros a reales cuando se
requiere (conversión implícita)
 Ejemplo: 10 / 4.0 se evalúa como 2.5 ya que 4.0 es un número real y
ambos operandos han de ser del mismo tipo; 10 se convierte a real y el
resultado de dividir dos reales es un número real
 Otra posibilidad es hacer una conversión explícita usando una función
de conversión (que toma un argumento de un tipo y devuelve uno de
otro tipo)
 Estas funciones tienen el mismo nombre que los tipos de datos que hemos
visto: int(), float(), bool() y str()
22
Conversión de tipo explícita

Función Uso Ejemplo Res. Explicación


Convierte el int(2.7) 2 Descarta los decimales
int() argumento a un int(True) 1 True = 1 y False = 0
número entero int('10') 10 Convierte la cadena en entero
Redondea un
round(2.4) 2 Redondea el número real al entero
round() número real a
round(2.6) 3 más cercano
entero
Convierte el float(2) 2.0 Entero a número real
float() argumento a un float(True) 1.0 True = 1.0 y False = 0.0
número real float('2.5') 2.5 Convierte la cadena en real
Convierte el bool(0) False 0=False, distinto de 0=True
bool() argumento a un bool(1.0) True 0.0=False, distinto de 0.0=True
booleano bool('True') True Convierte la cadena en booleano
Convierte el str(10) '10' Convierte el entero en cadena
str() argumento a una str(2.5) '2.5' Convierte el real en cadena
cadena de texto str(True) 'True' Convierte el booleano en cadena

23
Documentación de código

 Los comentarios sirven para explicar a las personas que puedan leer el
programa en el futuro, qué es lo que hace el programa, así como
explicar algunas partes del código
 Los comentarios se ignoran al ejecutar el código
 Escribir comentarios requiere un esfuerzo, pero es una buena práctica y
compensará con creces ese esfuerzo en el futuro
 En Python, los comentarios se pueden poner de dos formas:
 Comentarios de una sola línea: se escribe el símbolo almohadilla (#) al
comienzo del comentario. El comentario termina al final de la línea
 Comentarios de varias líneas: el comentario comienza y termina con unas
comillas dobles triples (""")

24
Documentación de código

 Ejemplo:

 Python usa los comentarios multi-línea para asociar documentación


con módulos, funciones, clases y métodos (llamados documentation
strings o docstrings)
 Veremos estas convenciones más adelante
25
Entrada/Salida de datos básicos

 Nuestros programas serían de muy poca utilidad si no fueran capaces


de interaccionar con el usuario
 Para pedir información al usuario, se utiliza la función input(), así como
los argumentos de línea de comandos
 Para mostrar mensajes en pantalla, se utiliza la función print()
 La función de entrada input() hace lo siguiente:
 Espera a que el usuario escriba un texto y pulse la tecla de retorno de carro
 Entonces prosigue la ejecución, devolviendo una cadena con el texto que
tecleó el usuario
 La función input admite un argumento opcional: una cadena con el
mensaje que se le debe mostrar al usuario para este sepa qué información
ha de introducir
 La función de salida print() muestra uno o más datos por pantalla
26
Entrada/Salida de datos básicos

 Ejemplos
 Lee una cadena desde teclado y la muestra por pantalla:

El usuario escribe el texto que quiere


en esta caja. Al pulsar retorno de carro,
la cadena de texto escrita se guarda en
la variable x.
A continuación, el valor de x se
muestra por pantalla gracias a la
instrucción print(x)
 En el ejemplo anterior, el usuario no
sabe qué información ha de escribir. Incluyendo un mensaje como
argumento del input(), el programa queda más claro:
El mensaje ‘Dime tu edad:’ se
muestra al solicitar la información al
usuario.
La instrucción print escribe tres
datos (separados por comas). Estos
tres valores aparecen por pantalla
separados por un espacio
27
Entrada/Salida de datos básicos

 La función input() devuelve una cadena de texto. En el caso de que


necesitemos un número, tendremos que hacer una conversión de tipo
a int o float
 Ejemplo: el siguiente programa indica si el año introducido por el usuario es
o no bisiesto
Conversión
del texto
leído a un
número
entero

Un año es bisiesto si es divisible entre 4, excepto


aquellos divisibles entre 100 pero no entre 400.
28
Formato de salida: argumentos

 La función print() usa un espacio en blanco como separador y un


retorno de carro, '\n', como carácter final
 El argumento sep permite modificar el separador
 El argumento end permite modificar el texto que se muestra al final

Añadimos un punto y un
retorno de carro al final

Separamos las dos cadenas


mediante una coma y un
espacio
29
Formato de salida: cadenas formateadas

 Comenzar una cadena con la letra f o F antes de abrir las comillas


permite formatear la salida con gran flexibilidad, combinando:
 Caracteres normales, que se imprimirán por pantalla directamente.
 Especificadores de formato, entre llaves {}, que definen el modo en que se
visualizarán los valores que se incluyen dentro.
 Ejemplo:

evento = 'olimpiadas'
año = 1992
lugar = 'Barcelona'
print(f'Las {evento} de {lugar} del {año}.')

Las olimpiadas de Barcelona del 1992.

30
Formato de salida: cadenas formateadas

 En las cadenas formateadas, pueden añadirse opciones de formato


adicionales escribiendo dos puntos (:) tras el valor.
{valor:formato}
 Las opciones de formato más habituales son:
[alineamiento][0][ancho][.precisión]
 Alineamiento: < (izquierda), > (derecha), ^ (centrado)
 0: completa los caracteres que faltan rellenando con ceros en lugar
de espacios.
 ancho: mínimo número de caracteres a imprimir.
 precisión: número de dígitos decimales a mostrar. Conviene poner el
carácter f tras la precisión para forzar la notación de punto fijo.

31
Formato de salida: cadenas formateadas

 Ejemplos (suponemos que a=7, b=2 y nombre='Miguel')

Instrucción Resultado
print(f'Hola {nombre}') Hola Miguel
print(f'Tengo {b * 10} años') Tengo 20 años
print(f'PI={pi:.2f}') PI=3.14
print(f'PI={pi:.4f}') PI=3.1416
print(f'Agente {a:03d}') Agente 007
print(f'({a:10})') ( 7)
print(f'({a:<10})') (7 )
print(f'{a} * {b} = {a * b}') 7 * 2 = 14
print(f'{a} / {b} = {a / b:.2f}') 7 / 2 = 3.50
print(f'{nombre} tiene {a} hijos') Miguel tiene 7 hijos
print(f'\t... y Luis tiene {b}') ... y Luis tiene 2
print(f'{"Unamuno":^10}, {nombre:>10}') Unamuno , Miguel
32

También podría gustarte