Variables y Tipos de datos
Las variables permiten almacenar datos del programa. Estas serán de un tipo u otro en función de la información que se guarde en ellas.
nombre = 'Amaia' # cadena de texto
edad = 30 # número entero
- Comenzar con una letra o un guión bajo.
- El resto del nombre estará formado por letras, números o guiones bajos.
- Los nombres de las variables son case sensitive, es decir, no es lo mismo que una variable se llame
resultado
queRESULTADO
. - Existen una serie de palabras reservadas que no se pueden utilizar (def, global, return, if, for, ...).
Algunas de las recomendaciones respecto a los nombres de las variables están recogidas en la Guía oficial de Estilos PEP8 de Python. Entre las más habituales encontramos las siguientes:
- Utilizar nombres descriptivos, en minúsculas y separados por guiones bajos si fuese necesario:
resultado
,mi_variable
,valor_anterior
,... - Escribir las constantes en mayúsculas:
MI_CONSTANTE
,NUMERO_PI
, ... - Antes y después del signo
=
, debe haber uno (y solo un) espacio en blanco.
Nota: No olvides que lo que la guía plantea son recomendaciones y no obligaciones. Por ejemplo, mientras PEP8 recomienda tabular el código con 4 espacioes en blanco, la guía particular de los desarrolladores de Google habla de 2 espacios en lugar de 4.
Resumen de tipos de variables
edad = 24 # número entero (integer)
precio = 112.9 # número de punto flotante (float)
titulo = ‘Aprende Python desde cero’ # cadena de texto (string)
test = True # booleano
Lectura de datos en Python
La función input()
permite introducir datos al usuario:
>>> nombre = input()
Leire
>>> print(nombre)
Leire
Como se puede ver en el siguiente ejemplo, es posible también mostrar un mensaje al usuario, tal y como muestra el siguiente ejemplo.
>>> nombre = input("Escribe tu nombre: ")
Escribe tu nombre: Leire
>>> print(nombre)
Leire
```
## Números
Python soporta dos tipos de números: enteros (integer) y de punto flotante (float).
```python
# integer
x = 5
print(x)
# float
y = 5.0
print(y)
# Otra forma de declarar un float
z = float(5)
print(z)
Si tenemos dudas del valor de una variable, podemos mostrar su tipo utilizando la función type()
:
>>> x = 5.5
>>> type(x)
<class 'float'>
Cadenas de texto (string)
Las cadenas de texto o strings se definen mediante comilla simple (' '
) o doble comilla (" "
):
mi_nombre = 'Ane'
print(mi_nombre)
mi_nombre= "Ane"
print(mi_nombre)
La diferencia principal se encuentra en que las comillas dobles aportan mayor facilidad en textos que incluyan apóstrofes:
mi_nombre = 'I\'m John'
print(mi_nombre)
mi_nombre= "I'm John"
print(mi_nombre)
Más información sobre strings y carácteres especiales en: https://docs.python.org/3/tutorial/introduction.html#strings
Para definir strings multi-línea se utiliza la triples comillas ("""
):
frase = """ esto es una
frase muy larga de más de
una línea ..."""
Concatenación de strings
Es posible unir dos strings con el operador +
:
>>> primera_palabra = 'Hola'
>>> frase_completa = primera_palabra + ', mundo'
>>> print(frase_completa)
'Hola, mundo'
>>> segunda_palabra = 'mundo'
>>> frase_completa = primera_palabra + ', ' + segunda_palabra
>>> print(frase_completa)
'Hola, mundo'
Método alternativo 1: str.join():
El método join()
recibe como argumento el listado (de tipo List, Tuple, String, Dictionary y Set) de strings que se desean concatenar. Se invoca sobre el separador que se utilizará para unir las cadenas (el cual a su vez es un string también):
>>> strings = ['do', 're', 'mi']
>>> separador = ' - '
>>> separador.join(strings)
'do - re - mi'
Para iterar un elemento detrás del otro se introducirá string vacío como separador:
>>> strings = ['do', 're', 'mi']
>>> ''.join(strings)
'doremi'
Método alternativo 2: str.format()
:
Python 3 introdujo una nueva forma para formatear strings, la cual sustituye a la anterior en la que se hace uso del operador %
. Para ello se invoca el método format()
de un string:
# Ordenado por defecto:
frase = "Meses: {}, {} y {}".format('Enero','Febrero','Marzo')
print(frase)
# Especificar el orden indicando la posición:
frase = "Meses: {1}, {0} y {2}".format('Enero','Febrero','Marzo')
print(frase)
# Especificar el orden mediante parejas clave-valor:
frase = "Meses: {ene}, {feb} y {mar}".format(ene='Enero', feb='Febrero',m='Marzo')
print(frase)
Cadenas 'f' (f-strings)
La versión 3.6 de Python trajo un gran avance a la hora de integrar variables o expreiones en cadenas de carácteres. Se introdujeron las llamadas f-strings
, una forma más cómoda y directa para insertar variables y expresiones en cadenas. Permiten introducir cualquier variable o expresión dentro de un string incluyendo la variable entre llaves {
y }
.
Veamos un ejemplo:
nombre = "Nora"
edad = 22
saludo = f"Me llamo {nombre} y tengo {edad} años."
Para indicar que se trata de un f-string
, este deberá incluir la letra 'f' antes del comiendo de la cadena (antes de las comillas). A continuación se muestra otro ejemplo en el que se introduce una expresión:
a = 4
b = 3
print(f"La multiplicación de {a} y {b} es igual a {a * b}")
Conversión de tipos
A la hora de concatenar un string con otras variables como integer
o float
puede haber problemas:
>>> edad = 25
>>> nota_media = 7.3
>>> print("Tengo " + edad + " años y mi nota media es " + nota_media + ".")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
Mediante la función str()
podemos convertir un valor a string y evitar así cualquier tipo de problema:
>>> edad = 25
>>> nota_media = 7.3
>>> print("Tengo " + str(edad) + " años y mi nota media es " + str(nota_media) + ".")
Tengo 25 años y mi nota media es 7.3.
De igual manera es posible convertir a otros tipos con las funciones int()
, float()
and bool()
.
Métodos en cadenas de texto (string)
Es posible obtener un carácter concreto de un string utilizando los corchetes []
y el índice del carácter al que queremos acceder:
frase = 'Aprendiendo a programar en Python'
frase[0] # devuelve el primer caracter
frase[1] # devuelve el segundo caracter
frase[-1] # devuelve el primer caracter empezando por el final
frase[-2] # # devuelve el segundo caracter empezando por el final
Si queremos obtener un substring, utilizaremos la siguiente notación:
frase = 'Aprendiendo a programar en Python'
mi_substring = frase[1:5]
# devuelverá los caracteres desde la posición 1 hasta la 5 (no incluye el 5)
En caso de dejar la primera variable vacía, se considera la primera posición del string. Dejando la segunda variable vacía se considera la última posición del string:
>>> frase = 'Aprendiendo a programar en Python'
>>> mi_substring = frase[:5]
>>> mi_substring
'Apren'
>>> mi_substring = frase[4:]
>>> mi_substring
'ndiendo a programar en Python'
Otros métodos útiles de string:
len(str) # devuelve la longitud del string
str.upper() # convierte a mayúsculas
str.lower() # convierte a minúsculas
str.title() # convierte a mayúsculas la primera letra de cada palabra
str.count(substring [, inicio, fin]) # devuelve el número de veces que aparece
# el substring en el string. Opcionalmente se puede indicar el inicio y fin.
str.find(‘d’) # devuelve el índice de la primera aparición de 'd'
# (devolverá -1 si no lo encuentra)
substr in str # devuelve True si el string contiene el substring
str.replace(old, new [, count]) # reemplaza 'old' por 'new' un máximo de 'count' veces.
str.isnumeric() # devuelve True si str contiene solamente números
Coding time!
Ejercicio 1
Escribe un programa que contenga las siguientes variables:
nombre
: tipo string y valor "Michael Jordan"edad
: tipo integer y valor 50media_puntos
: tipo float y valor 28.5activo
: False
El programa deberá mostrar en pantalla todos los valores.
Ejercicio 2
Escribe un programa que solicite el nombre, DNI y edad, lo almacene en 3 variables distintas y muestre por pantalla los valores introducidos.
Ejercicio 3
Escribe un programa que genere un string compuesto por los primeros 3 caracteres y los últimos 3 caracteres de un string introducido por el usuario. Pista: puedes utilizar la función len()
en la obtención de los últimos 3 caracteres.
- Ejemplo 1: 'aprendiendo'
- Resultado 1: 'aprndo'
- Ejemplo 2: 'escribiendo código'
- Resultado 2: 'escigo'
Ejercicio 4
Escribe un programa que solicite al usuario dos números y una frase. El primer número introducido se corresponderá a la posición de inicio del substring que deberá mostrar el programa por pantalla. El segundo número indicará la longitud de dicho substring.
- Ejemplo 1: Posicion=4, Longitud=8, Frase='Desarrollar es mi nueva afición'
- Resultado 1: "rrollar "
- Ejemplo 2: Posicion=8, Longitud=11, Frase='Bienvenido a la clase de programación'
- Resultado 2: "do a la cla"
Ejercicio 5
Escribe un programa que solicite al usuario una frase. A continuación le solicitará la letra que quiere reemplazar y por qué letra deberá reemplazarse. Por último el programa mostrará el número de veces que la letra está presente en la frase y el resultado final tras reemplazarla.
- Ejemplo: 'Desarrollar es mi nuevo pasatiempos', 'a','e'
- Resultado: 4 apariciones. 'Deserroller es mi nueve pesetiempos'