Tipos básicos en Python#
Las variables en Python pueden contener diferentes tipos de números y también otras cosas como texto, imágenes y objetos más complejos.
También podemos imprimir el tipo de una variable.
Ver también
Esto es un número entero:
a = 5
type(a)
int
Y esta es una variable de punto flotante:
b = 3.5
type(b)
float
Al combinar variables de diferentes tipos, Python toma una decisión sobre qué tipo debería tener la nueva variable
c = a + b
type(c)
float
Cadenas#
Las variables también pueden contener texto. En este caso las llamamos “cadena”, y las definimos rodeando el valor con comillas simples ' ' o comillas dobles " ":
first_name = "Robert"
last_name = 'Haase'
Las cadenas se pueden concatenar usando el operador +:
first_name + last_name
'RobertHaase'
first_name + " " + last_name
'Robert Haase'
Si queremos tener comillas simples y dobles dentro de nuestro texto, podemos ponerlas así:
text = "She said 'Hi'."
print(text)
She said 'Hi'.
text = 'He said "How are you?".'
print(text)
He said "How are you?".
Combinando cadenas y números#
Al combinar variables de tipos numéricos y tipos de cadena, pueden aparecer errores:
first_name + a
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [12], in <cell line: 1>()
----> 1 first_name + a
TypeError: can only concatenate str (not "int") to str
Estos se pueden prevenir convirtiendo la variable numérica a un tipo de cadena usando la función str():
first_name + str(a)
'Robert5'
También puedes convertir cadenas a números en caso de que contengan números:
d = "5"
int(d)
5
a + int(d)
10
Si la cadena no contiene un número, puede aparecer un mensaje de error:
int("hello")
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [17], in <cell line: 1>()
----> 1 int("hello")
ValueError: invalid literal for int() with base 10: 'hello'
int("")
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [18], in <cell line: 1>()
----> 1 int("")
ValueError: invalid literal for int() with base 10: ''
int("5")
5
f-strings#
En lugar de tener que convertir manualmente los números a cadenas para ensamblarlos con otras cadenas, podemos recurrir a f-strings que se definen simplemente añadiendo una f antes de la comilla de apertura de una cadena regular:
f"This is an f-string"
'This is an f-string'
Ahora podemos añadir variables directamente en este texto rodeándolas con llaves:
f"This is an f-string. a's value is {a}. Doubling the value of a gives {2*a}."
"This is an f-string. a's value is 5. Doubling the value of a gives 10."
Como puedes ver arriba, las f-strings pueden contener tantas variables como sea necesario y las llaves pueden contener más que solo una variable. Incluso podemos ejecutar funciones dentro de ellas:
f"The first_name variable contains {first_name.lower().count('r')} r letters."
'The first_name variable contains 2 r letters.'
Ejercicio#
El nombre y la fecha de nacimiento de Marie Curie están almacenados en variables. Concatena estos en una variable de cadena y imprímela. La salida debería ser “Marie Curie, * 7 November 1867”
first_name = "Marie"
last_name = "Curie"
birthday_day = 7
birthday_month = "November"
birthday_year = 1867