Apuntes Python
Apuntes Python
APUNTES PYTHON
Introducción a Python
VARIABLES:
Una variable me permite almacenar datos. Puedo asignar varias variables en una
única línea. Usando type() vemos que Apo de variable hemos guardado.
x, y, z = "Orange", "Banana", "Cherry"
VARIABLES GLOBALES Y LOCALES
Son las que se crean en el exterior de una función y pueden usarse tanto dentro
como fuera de las funciones. Si creas una variable en el interior de una función esta será
una variable local y solo servirá para el interior de esa función. Una variable local se
puede converAr en una global uAlizando el comando global.
def myfunc():
global x
x= "fantastic”
myfunc()
print("Python is " + x)
OPERADORES LÓGICOS:
AND: OR:
PRINT:
Output que permite extraer por pantalla cualquier formato: string, int, foat y
booleano. Para que se impriman varios argumentos estos deben de estar separados por
comas.
name = "Anna"
surname = "Anderson"
print(name, surname)
OPERADORES
• /: División normal. Obtengo el resultado en Apo float
• //: División entera, al dividir obtengo un número entero en Apo int
• %: resto al dividir, módulo
1
Apuntes Python | María Álvarez Álvarez
INPUTS:
Hay que recordar que todos los inputs se almacenan como string. Para cambiar el
formato hay que usar:
• int(input()) para que sea número entero.
• float(input()) para que sea número decimal etc.
DATA TYPE:
Existen varios Apos de datos:
• Text Type: str
• Numeric Types: int, float, complex
• Sequence Types: list, tuple, range
• Mapping Type: dict
• Set Types: set, frozenset
• Boolean Type: bool
• Binary Types: bytes, bytearray, memoryview
• None Type: NoneType
NÚMEROS:
INTEGER
Int, números enteros posiAvos, negaAvos y sin decimales. Si queremos converAr
un float a int lo hará truncando el número.
FLOAT
Float, números posiAvos, negaAvos con decimales. También son los números de
potencias uAlizando “e” como el exponete de 10^-.
2
Apuntes Python | María Álvarez Álvarez
COMPLEJOS
Complex: números complejos que uAlizan la “j” como la parte imaginaria.
ALEATORIO
Random: me permite generar un número aleatorio.
import random
print(random.randrange(1, 10))
STRINGS:
Se escriben entre comillas. Pueden estar indexados. Esto quiere decir que
ponemos imprimir un carácter del string o su longitud.
a= "Hello,World!"
print(a[1:5])
print(len(a))
Para imprimir cada carácter de un string lo podemos hacer con:
for x in "banana":
print(x)
También podemos comprobar si un carácter está o no en el string con las
funciones if in o if not in.
txt = "The best things in life are free!"
if "free" in txt:
print("Yes, free' is present.")
if "expensive" not in txt:
print("No, 'expensive' is NOT present.")
CONCATENACIÓN
Permite unir dos argumentos.
x = "air"
y = "plane"
print(x + y)
INSERCIÓN DE CARACTERES ILEGALES:
• \' Single Quote #añade comillas simples
• \\ Backslash #añade la barra \
• \n New Line #salto de linea
• \r Carriage Return #Equivalente a dar al intro print(“Hello\rWorld”)
• \t Tab #añade una tabulación print(“Hello\tWorld”)->Hello World
• \b Backspace #quita un espacio print(“Hello \bWorld!”)->HelloWorld!
BOOLEANS:
En Python muchas veces es necesario saber si un argumento es verdadero o falso.
Se pueden aplicar booleanos en: strings, todas serán True salvo las vacías; números,
todos true salvo el 0; listas, tuplas y diccionarios, todos True salvo las vacías.
3
Apuntes Python | María Álvarez Álvarez
CONDICIONALES:
IF:
El if se uAliza para tomar decisiones basadas en condiciones, permiAendo que el
código ejecute diferentes bloques de instrucciones dependiendo de si una condición es
verdadera o falsa.
a, b = 33, 200
if b > a:
print("b is greater than a")
Si el if solo Aene una línea se puede poner junto.
a, b = 33, 200
if b > a: print("b is greater than a")
Si un if está vacío se puede poner “pass” para evitar el error.
a, b = 33, 200
if b > a:
pass
ELIF:
El elif es equivalente a decir: “si la condición anterior es falsa, prueba con esta”.
a, b = 33, 200
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
ELSE:
La condición else realiza su argumento si ninguno de las anteriores se cumple.
a, b = 33, 200
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
BUCLES:
WHILE
El bucle while ejecuta declaraciones mientras sean verdad. Con el bucle while no
sabes cuantas veces se va a repe<r una tarea. Por ejemplo un while hasta que la
contraseña sea correcta.
4
Apuntes Python | María Álvarez Álvarez
seats = 5
while seats > 0:
print("Sell ticket")
seats = seats – 1
El bucle while requiere que las variables relevantes estén listas; en este ejemplo
necesitamos definir una variable de indexación, i, que configuramos en 1. Hay que
incrementar i, de lo contrario el ciclo conAnuará para siempre.
i = 1
while i < 6:
print(i)
i += 1
Para detener el bucle lo hacemos con break. Se deAene aunque las condiciones
sean ciertas.
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
Con la instrucción conAnue podemos detener la iteración actual y conAnuar con
la siguiente:
i = 0
while i < 6:
i += 1
if i == 3:
5
Apuntes Python | María Álvarez Álvarez
continue
print(i)# Note that number 3 is missing in the result
Se puede usar else cuando la condición del while ya no se cumpla.
i = 1
while i < 6:
print(i)
i += 1
else:
print("i is no longer less than 6")
FOR:
Un bucle for se uAliza para iterar sobre una secuencia (es decir, una lista, una
tupla, un diccionario, un conjunto o una cadena). Los bucles for se usan cuando sabes
cuantas veces se va a repe<r una instrucción.
LOOP CON EL FOR:
Me permite pasar por todas las letras de una palabra.
for x in "banana":
print(x)
Al usar for para hacer un loop por una variable no es necesario definir esa
variable antes.
Puedo terminar un bucle uAlizando break y saltarlo con conAnue al igual que el
los while.
FUNCIÓN RANGE:
Para hacer un bucle a través de un código un número determinado de veces se
puede uAlizar la función range(). Esta devuelve una secuencia de números empezando
por el cero con incrementos de uno en uno si no se le indica otro caso. En el siguiente
ejemplo los valores van de 2 a 29 con saltos de 3 en 3.
for x in range(2, 30, 3):
print(x)
ELSE:
El else después de un for se ejecuta cuando termine el for anterior, pero no se
ejecutará si el for termina por un break.
PASS:
Si se quiere evitar un erro por que un for está vacío hay que poner pass para que
salte ese bucle.
LISTAS:
Las listas permiten almacenar una colección de varios valores en una única
variable. Hay que poner corchetes [ ] entre sus valores y separarlos por comas. Puede
almacenar cualquier Apo de valores y de varios Apos. Las listas son: ordenadas, iterables
y me permiten duplicar valores.
ORDENAS: Quiere decir que los ítems se han definido en un orden, y ese orden
no se puede cambiar. Si añades un nuevo elemento este se sitúa al final.
6
Apuntes Python | María Álvarez Álvarez
ITERABLE: Quiere decir que se pueden quitar, añadir y cambiar los elementos
después de que se haya creado.
Al estar indexadas me permite que los valores puedan estar repeAdos.
cart=[”milk”, “tea”, “jam”]
ÍNDICES
Las listas son uno Apo de colecciones, y te permiten almacenar valores
indexados. Cada elemento de una lista Aene un índice, que se establece
automáAcamente. Para acceder a un elemento de la lista podemos hacerlo mediante la
posición que ocupa en la lista, siendo la primera el 0.
SLICING
Para elegir imprimir los elementos de una lista de la posición x a la y se emplea:
7
Apuntes Python | María Álvarez Álvarez
print(animals[2:4])
Los índices también pueden empezar por el final de una lista.
8
Apuntes Python | María Álvarez Álvarez
LIST COMPRENHENSION
Es una manera úAl de crear rápidamente listas cuyos contenidos sigan una regla.
cubes = [i**3 for i in range(5)]
print(cubes) #contiene los cubos del 0 al 4
SORT
Me permite ordenar los elementos de una lista. Bien sea alfabéAca o
numéricamente.
De mayor a menor:
numeros=[2,5,7,3,1]
numeros.sort(reverse=True)
De menor a mayor:
numeros=[2,5,7,3,1]
numeros.sort()
Es importante tener en cuenta que el método sort() modifica la lista original. Si
prefieres mantener la lista original intacta y obtener una nueva lista ordenada, puedes
uAlizar la función sorted() en su lugar.
lista_ordenada = sorted(lista) # menor a mayor
9
Apuntes Python | María Álvarez Álvarez
TUPLAS:
Al igual que las listas, las tuplas nos permiten almacenar varios elementos en una
misma variable. Se escriben entre paréntesis () y son colecciones de datos ordenadas,
invariantes (no podemos ni añadir ni eliminar datos) y permiten datos duplicados.
Se se puede acceder a sus elementos mediante índices y se puede comprobar si
un elemento está en la tupla de la misma forma que si está en una lista.
thistuple = ("apple", "banana", "cherry")
print(thistuple[-1])
if "apple" in thistuple:
print("Yes, 'apple' is in the fruits tuple
VARIAR TUPLAS:
Las tuplas son inmutables, esto quiere decir que no podemos añadir ni eliminar
elementos. Si quisiésemos variarlas tendríamos que converArlos en listas, hacer los
cambios que deseemos y volverlos a converAr en tuplas.
thistuple = ("apple", "banana", "cherry")
y = list(thistuple)
y.append("orange")
thistuple = tuple(y)
EXTRAER VALORES DE TUPLAS:
Una vez creada una tupla podemos asignarle a cada elemento una variable y
extraer sus valores como variables.
fruits = ("apple", "banana", "cherry")
(green, yellow, red) = fruits
print(green) #imprime apple
print(yellow) #imprime banana
print(red) #imprime red
Si el número de variables es menor que el número de valores, se puede agregar
un * al nombre de la variable y los valores se asignarán a la variable como una lista. Si el
asterisco se agrega a otro nombre de variable que no sea el úlAmo, Python asignará
valores a la variable hasta que el número de valores restantes coincida con el número de
variables restantes:
fruits =
("apple", "banana", "cherry", "strawberry", "raspberry")
(green, yellow, *red) = fruits
print(green)#imprime apple
print(yellow)#imprime banana
print(red)#imprime ["cherry", "strawberry", "raspberry"]
(green, *tropic, red) = fruits
print(green)#imprime apple
print(tropic)#imprime["banana", "cherry", "strawberry"]
print(red)#imprime raspberry
LOOP DE TUPLAS:
Se puede iterar en tuplas usando un bucle for o un while:
thistuple = ("apple", "banana", "cherry")
for x in thistuple:
print(x)
10
Apuntes Python | María Álvarez Álvarez
i = 0
while i < len(thistuple):
print(thistuple[i])
i = i + 1
UNIR TUPLAS:
Se pueden sumar tuplas uAlizando el operador +.
tuple1 = ("a", "b" , "c")
tuple2 = (1, 2, 3)
tuple3 = tuple1 + tuple2 #('a', 'b', 'c', 1, 2, 3)
También se pueden mulAplicar las tuplas.
fruits = ("apple", "banana", "cherry")
mytuple = fruits * 2 #('apple', 'banana', 'cherry', 'apple', 'banana',
'cherry')
En ambos casos siguen siendo formato tuplas.
SETS:
Los sets en Python me permiten almacenar varios ítems en una variable. Se
escriben entre corchetes { }.
Son desordenados, lo que quiere decir que no Aenen un orden definido, no
pueden estar indexados y cada vez que los usas pueden aparecer en un orden disAnto.
Son invariables, lo que indica que no se pueden modificar sus ítems después de crearlas
pero sí añadir o eliminarlos. Tampoco permiten ítems duplicados. Hay que tener cuidado
porque en los sets el valor 1 y True son equivalentes, lo mismo ocurre con el 0 y el False
que son tratados como el mismo.
set1 = {"abc", 34, True, 40, "male"}
Al ser desordenado no se puede acceder a un único ítem como en listas, pero si
se puede hacer un loop usando un bucle for.
thisset = {"apple", "banana", "cherry"}
for x in thisset:
print(x)
AÑADIR ELEMENTOS A UN SET:
AÑADIR ELEMENTOS EN UN SET:
Con el comando add() se pueden añadir elementos de un set. Este comando
también se puede usar en listas.
thisset = {"apple", "banana", "cherry"}
thisset.add("orange")
print(thisset)
11
Apuntes Python | María Álvarez Álvarez
set3 = set1.union(set2)
print(set3) # imprime {"a", "b" , "c", 1, 2, 3}
ELIMINAR UN ÍTEM DE UN SET:
Se puede usar el comando remove() igual que en las listas.
También se usa el comando discard(). Si elemento a descartar no existe dará un
error.
thisset = {"apple", "banana", "cherry"}
thisset.discard("banana")
Para eliminar un set por complete se usa del, al igual que en las listas.
VACIAR UN SET:
UAlizando el comando clear() al igual que en las listas.
DICCIONARIOS:
Los diccionarios son otro Apo de colección que te permiten asignar claves
arbitrarias a valores. Sus valores se escriben entre llaves { }. Están compuestos por una
clave, key y un valor. Esto me permite acceder a un valor de una lista que en vez de
acceder con el índice se accede con la clave entre corchetes [ ]. Los diccionarios son
ordenados, variables y no permiten duplicados. Puede tener elementos de cualquier
Apo.
Que sean variables quiere decir que podemos añadir, eliminar o modificar
elementos de este. No permiten tener dos ítems con el mismo “key”.
ages = {"Dave": 24, "Mary": 42, "John": 58 }
ACCEDER A LOS DATOS DE UN DICCIONARIO:
Para acceder al valor de un diccionario nos tenemos que referir a el por key.
Podemos hacerlo uAlizando los corchetes como en los índices o con el método get().
dict = {"brand":"Ford","model":"Mustang","year": 1964}
print (thisdict["model"])
print(thisdict.get("model"))
Para determinar si una key está en un diccionario uAlizamos in o not in, como si
de una lista se tratara.
nums = { 1: "one", 2: "two", 3: "three", }
print(1 in nums)
También se puede usar el commando get().
pairs = {1: "apple", "orange": [2, 3, 4],True: False, 12:
"True",}
print(pairs.get("orange")) #imprime orange que ya está en
el diccionario
print(pairs.get(7, 42)) #anañade key: 7 y value: 42 al diccio
e imprime 42
12
Apuntes Python | María Álvarez Álvarez
print(thisdict.values())
print(thisdict.keys())
print(thisdict.items())
EDITAR LISTAS:
CAMBIAR UN VALOR Y AÑADIR ELEMENTOS:
Para cambiar un valor tenemos que hacerlo refiriéndonos al key como un índice.
dict= {"brand": "Ford", "model": "Mustang","year":1964}
dict["year"] = 2018
También se puede usar el método update().
dict = {"brand": "Ford","model": "Mustang","year": 1964}
dict.update({"year": 2020})
Con ambos métodos, si la key está en el diccionario, actualiza su valor. En caso
contrario añade un key y un valor nuevo.
ELIMINAR UN ITEM:
Se puede hacer con el comando pop() o pop.item(), la diferencia es que
popitem() elimina el úlAmo añadido, mientras que pop() elimina el que indiquemos.
dict = {"brand": "Ford","model": "Mustang","year": 1964}
dict.pop("model")
dict.popitem()
Al igual que en las listas, podemos vaciar un diccionario con clear() y eliminarlo
con del().
LOOP EN UN DICCIONARIO:
Se puede hacer con el comando for:
Obtener key una por una:
for x in thisdict:
print(x)
for x in thisdict.keys():
print(x)
Obtener valores una por una:
for x in thisdict:
print(thisdict[x])
for x in thisdict.values():
print(x)
Obtener key y valores:
for x in thisdict.keys():
print(x)
for x, y in thisdict.items():
print(x, y)
COPIAR DICCIONARIOS:
Para copiar diccionarios no basta con hacer dic1=dic2. Podemos usar el comando
copy().
dict = {"brand": "Ford","model": "Mustang","year": 1964}
mydict = dict.copy()
print(mydict)
También se puede hacer algo similar a un cambio de variable.
13
Apuntes Python | María Álvarez Álvarez
mydict = dict(dict)
print(mydict)
DICCIONARIOS ANIDADOS:
Un diccionario puede contener otros diccionarios, a esto se le conoce como
diccionario anidado.
Podemos hacer un diccionario que conAene otros tres:
myfamily = {"child1" : {"name" : "Emil","year" : 2004},
"child2" : {"name" : "Tobias","year" : 2007},
"child3" : {"name" : "Linus","year" : 2011}}
Si queremos añadir tres diccionarios a uno ya creado lo podemos hacer creando
primero esos tres diccionarios y luego creando uno que contenga a los otros tres.
myfamily = {"child1" : {"name" : "Emil","year" : 2004},
"child2" : {"name" : "Tobias","year" : 2007},
"child3" : {"name" : "Linus","year" : 2011}}
myfamily = {"child1" : child1,
"child2" : child2,
"child3" : child3}
Para acceder a un ítem en un diccionario anidado se hace refiriéndonos a
las dos llaves
print(myfamily["child2"]["name"])
FUNCIONES VARIAS:
REPLACE
Permite remplazar una string con otra.
a= "Hello,World!"
print(a.replace("H", "J"))#imprime Jello, World!
SPLIT
Me permite dividir un cadena string según el Apo de separador que se desee. Si
dentro del paréntesis no hay nada, se enAende que el separador es un espacio en blanco.
Los caracteres los devuelve en una lista
herramientas = "Matillo,Sierra,Destronillador"
herramientas.split(',')
ROUND
Permite redondear un número cuando pasas de valor int a float.
n_decimal=3.3
n_redondeado=round(n_decimal)
UPPER Y LOWER
Solo se pueden uAlizar en strings. Este Apo de funciones que solo trabajan con un
<po de argumento se llaman u<lizando la notación punto. Para que estos cambios se
guarden hay que definirlo como nueva variable.
Ejemplo: Para poner en mayúscula Ikea
brand=Ikea
print(Brand.upper())#IKEA
14
Apuntes Python | María Álvarez Álvarez
CAPITALIZE
La función capitalize() permite ahorrar Aempo cuando haya que poner la inicial
de un string en mayúscula.
brand=ikea
print(Brand.upper())#Ikea
FIND
La función find() verifica si un carácter (o un patrón de caracteres) está presente
en una cadena. La función devuelve el índice (posición) del valor dado. Si el valor dado
está presente varias veces, la función devolverá la primera aparición. Hay que incluir un
argumento en su paréntesis.
"robot".find("o")
Si devuelve el valor -1 significa que no se encuentra en la cadena.
LEN
Indica la longitud de una lista, devuelve el número de elementos de la lista,
también acepta cualquier secuencia de texto
movies = ["Avatar", "Titanic", "Avengers"]
len(movies)
FUNCIONES:
Una función es un bloque de código que solo se ejecuta cuando se le llama. Se
pasan parámetros o argumentos1 que ejecutan la función. Para definir funciones en
Python se uAliza def seguido del nombre de la función y los paréntesis con los
argumentos en su interior. El cuerpo de la función debe de estar tabulado.
def my_function():
print("Hello from a function")
Para llamar a una función se usa el nombre de la función seguido por paréntesis.
def my_function():
print("Hello from a function")
my_function()
El cuerpo de una función no puede estar vacío. En el caso de que lo esté se puede
uAlizar pass para evitar obtener un error.
ARGUMENTOS:
La información se pasa a las funciones mediante argumentos o args. Se
especifican después del nombre de la función, dentro de los paréntesis. Se pueden
añadir tantos como se deseen separándolos por comas.
def my_function(name):
print(name + " Refsnes")
my_function("Emil")
1
Se llama parámetro a la variable en el interior de la función, cuando se define. El argumento es el valor
cuando se llama a la función.
15
Apuntes Python | María Álvarez Álvarez
16
Apuntes Python | María Álvarez Álvarez
17
Apuntes Python | María Álvarez Álvarez
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
FUNCIONES LAMBDAS:
Para crear una función normalmente usamos def que la asigna automáAcamente
a una variable con su nombre.
Las funciones lambda Aenen una sintaxis más sencilla (lambda argumento:
expresión) que la funciones def, pero no permite el uso de bucles, únicamente el de
cálculos. Solo pueden hacer cosas que equivalen a una única expresión, una línea de
código, pero puede haber cualquier número de argumentos.
Funcion def:
def area_triangulo(base, altura):
return (base*altura)/2
Funcion lambda:
area_triangulo=lambda base, altura: (base*altura)/2
x = lambda a : a + 10
print(x(5))
Vemos las diferencias:
• Eliminamos el término def y nombramos la función
• Los paréntesis se omiten en las variables
• Los dos puntos simbolizan el return
print((lambda x: x**2 + 5*x + 4) (-4))
La función anterior me devuelve el resultado de la ecuación x2+5x+4 para x=-4.
MAP
Recibe dos argumentos: la función que queremos aplicar y dónde la queremos aplicar.
nums = [11, 22, 33, 44, 55]
result = list(map(lambda x: x+5, nums))
print(result)
La función map() lo que hace es aplica la función lambda a la lista nums, es decir
suma 5 a todos los elementos de la lista. Map trata a los elementos como objetos, por
eso hay que poner list. Para que nos imprima una lista.
FILTER
En una lista, filter(), deja los elementos que cumplen con una condición. Funciona
de forma similar a map. Recibe dos argumentos: la función que queremos aplicar y
dónde la queremos aplicar.
nums = [11, 22, 33, 44, 55]
res = list(filter(lambda x: x%2==0, nums))
18