Sei sulla pagina 1di 14

Apuntes de Python

November 14, 2019


Chapter 1

Introducción

Como en la mayorı́a de los lenguajes de programación de alto nivel, en Python se compone


de una serie de elementos que alimentan su estructura. Entre ellos, podremos encontrar los
siguientes: variables, strings, tuplas, listas y diccionarios que veremos a continuación.

1.0.1 Trabajando con números


Se puede utilizar el intérprete de python como una calculadora, por ejemplo:
3+2
3-2
3*2
El sı́mbolo # se utiliza para hacer comentarios en el código

# División

3/2

En python se puede distinguir entre 2 tipos de números:


1. Enteros: Que no tienen una parte decimal y van desde menos infinito a más infinito.

2. Flotantes o decimales: Números que tienen una parte decimal escrita con un punto.
1 147.23
También podemos realizar operaciones más complejas
Python interpretará automáticamente las prioridades de los operadores.
3-2+4*10

1.1 Variables
Concepto fundamental de la programación, en el cuál se define un identificador y se le asigna
un valor. Luego podemos utilizarlas como si se tratase de un valor literal, incluso operarlas
entre otras variables y volver a asignarles un valor en cualquier momento. Por ejemplo:

3
#Asignación de un valor a una variable

n = 3

n+3

n*2

n*n

m=10

n+m

n*m+10

1.1.1 Reutilización
Al crear una estructura de cálculos con variables, podemos fácilmente adaptar sus valores
para hacer distintas comprobaciones.

nota_1 = 2

nota_2 = 5

nota_media = (nota_1 + nota_2) / 2

nota_media

3.5

1.2 Textos
Una variable (o constante) puede contener valores de diversos tipos. Entre ellos:

Textos Un string está formado por una cadena de caracteres. Para ingresar un string se
puede usar indistintamente las comillas, como se muestra en el siguiente ejemplo:

’Programo en Python’

"Programo en Python"
’a~
nado comillas " " ’

" ’python’ se encuentra escrita entre comillas simples"

" \"python\" se encuentra escrita entre comillas dobles"

1.2.1 print
La función print() permite mostrar correctamente el valor de una cadena (u otros valo-
res/variables) por pantalla.

print("Python")

print(’Me gusta Python’)

print(’Programo en Python’)

La función print también acepta caracteres especiales como las tabulaciones /t o los saltos
de lı́nea /n

print("Un texto\tuna tabulación")

print("Un texto\nuna nueva lı́nea")

Para evitar los carácteres especiales, debemos indicar que una cadena es cruda (raw)

print(r"C:\nombre\directorio") # r => raw (cruda)

También es posible asignar cadenas a variables. La forma correcta de mostrarlas es con la


instrucción print().

c = "cadena\ncon dos lı́neas"

print(c)

1.2.2 Operaciones
Una de las operaciones de las cadenas es la concatenación (o suma de cadenas)

c + c
print(c+c)
s = c+c print(s)
Una cadena compuesta de dos cadenas

c1 = "python"

c2 = "mas python"

print("python " + c2)

También es posible utilizar la multiplicación de cadenas

diez_espacios = " " * 10

print(diez_espacios + "un texto a diez espacios")

1.2.3 Índices en las cadenas


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

palabra = "Python"

palabra[0] # carácter en la posición 0

palabra[3]
12

El ı́ndice negativo -1, hace referencia al carácter de la última posición, el -2 al penúltimo y


ası́ sucesivamente

palabra[-1]
palabra[-0]
palabra[-2]
palabra[-6]
palabra[5]

1.2.4 Slicing en las cadenas


El slicing es una capacidad de las cadenas que devuelve un subconjunto o subcadena utili-
zando dos ı́ndices [inicio:fin]:

• El primer ı́ndice indica donde empieza la subcadena (se incluye el carácter).

• El segundo ı́ndice indica donde acaba la subcadena (se excluye el carácter).


palabra = "Python"
palabra[0:2]
palabra[2:]
palabra[:2]

Si en el slicing no se indica un ı́ndice se toma por defecto el principio y el final (incluı́dos)

palabra[:]
palabra[:2] + palabra[2:]
palabra[-2:]

Si un ı́ndice se encuentra fuera del rango de la cadena, dará error

palabra[99]

---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-50-5e2153d06ee5> in <module>
----> 1 palabra[99]

IndexError: string index out of range

Pero con slicing ésto no pasa y simplemente se ignora el espacio hueco

Sin embargo si llamamos a la cadena agregando dos puntos, no tenemos el error.

palabra[:99]
palabra[99:]

1.2.5 Inmutabilidad
Una propiedad de las cadenas es que no se pueden modificar. Si intentamos reasignar un
carácter, no nos dejará:

palabra[0] = "N"

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-53-59c3697fa6c2> in <module>
----> 1 palabra[0] = "N"

TypeError: ’str’ object does not support item assignment

Sin embargo, utilizando slicing y concatenación podemos generar nuevas cadenas fácilmente:

palabra = "N" + palabra[1:]


palabra
1.2.6 Funciones
Un ejemplo de función útil que soportan las cadenas es len(), que nos permite saber su
longitud (el número de caracteres que contienen).

len(palabra)

1.3 Listas
Tipo compuesto de dato que puede almacenar distintos valores (llamados ı́tems) ordenados
entre [ ] y separados con comas.

numeros = [1,2,3,4]
datos = [1,"python",-9,"Otra cadena",0]

1.3.1 Índices y slicing


Funcionan de una forma muy similar a las cadenas de caracteres.

datos[0]
datos[-1]
datos[-2:]

1.3.2 Suma de listas


Da como resultado una nueva lista que incluye todos los ı́tems.

numeros + [5,6,7,8]

1.3.3 Modificables
A diferencia de las cadenas, en las listas sı́ pueden modificar sus ı́tems utilizando ı́ndices:

pares = [0,2,4,5,8,10]
pares[3]= 6

Las listas integran funcionalidades internas, como el método .append() para añadir un ı́tem
al final de la lista

pares.append(12)
pares.append(7*2)

Y una peculiaridad, es que también aceptan asignación con slicing para modificar varios
ı́tems en conjunto

datos[:3] = [’A’,’B’,’C’]
Asignar una lista vacı́a equivale a borrar los ı́tems de la lista o sublista
datos[:3] = []
datos = []
La función len() también funciona con las listas del mismo modo que en las cadenas:
len(datos)
len(pares)

1.3.4 Listas anidadas


Podemos manipular fácilmente este tipo de estructuras utilizando múltiples ı́ndices, como si
nos refieréramos a las filas y columnas de una tabla.
a = [1,2,3]
b = [4,5,6]
c = [7,8,9]
r = [a,b,c]
donde r[0] # será la primera sublista
r[-1] # Última sublista
r[0][0] # Primera sublista, y de ella, primer ı́tem
r[1][1] # Segunda sublista, y de ella, segundo ı́tem

1.4 Leer valores por teclado


Se consigue utilizando la instrucción input() que lee y devuelve una cadena:
valor = input()
Aunque leemos un número, en realidad es una cadena de texto
valor = input("Introduce un valor: ")
Debemos utilizar int() o float para transformar la cadena a un número
valor = int(valor)
valor = float(valor)

1.5 Bool
El tipo lógico booleano representa la expresión:
• Verdadero (True)
• Falso (False)
Para utilizarlo usamos el doble signo igual, como:
1+1==3
1+2==2
1.6 Operadores relacionales
Sirven para comparar dos valores, dependiendo del resultado de la comparación pueden
devolver:
• Verdadero (True), si es cierta

• Falso (False), si no es cierta


Los operadores son:
# Igual que
3 == 2
# Distinto de
3 != 2
# Mayor que
3 > 2
# Menor que
3 < 2
# Mayor o igual que
3 >= 4
# Menor o igual que
3 <= 4
También es posible comparar variables
a = 10
b = 5
a > b
b != a
a == b*2
Y otros tipos, como cadenas, listas, el resultado de algunas funciones o los propios tipos
lógicos
"Hola" == "Hola"
"Hola" != "Hola"
c = "Hola"
c[0] == "H"
c[-1] == "a"

1.7 Operadores lógicos


Los operadores lógicos son 3:
• And

• Or
• Not
La conjunción And serı́a verdadera sı́:
A=5
B=7
A==5 and B==7
La conjunción Or serı́a verdadera sı́:
A=5
B=7
A==5 or B==5
La conjunción Not serı́a verdadera sı́:
A=5
B=7
A==5 and B!=5

1.8 Condicionales
1.8.1 Sentencia If
Permite dividir el flujo de un programa en diferentes caminos. El if se ejecuta siempre que
la expresión que comprueba devuelva True

if True: # equivale a if not False

print("Se cumple la condición")

Un ejemplo serı́a:
a = 5
if a == 2:
print("a vale 2")
if a == 5:
print("a vale 5")

1.8.2 Sentencia Else


Se encadena a un If para comprobar el caso contrario (en el que no se cumple la condición).
n = 11
if n % 2 == 0:
print(n,"es un número par")
else:
print(n,"es un número impar")
1.8.3 Sentencia Elif
Se encadena a un if u otro elif para comprobar múltiples condiciones, siempre que las ante-
riores no se ejecuten.
El siguente ejemplo pide una nota y la clasifica:

nota = float(input("Introduce una nota: "))


if nota >= 9:
print("Sobresaliente")
elif nota >= 7:
print("Notable")
elif nota >= 6:
print("Bien")
elif nota >= 5:
print("Suficiente")
else:
print("Insuficiente")

1.9 Iteraciones
Iterar significa realizar una acción varias veces. Cada vez que se repite se denomina iteración.

1.9.1 Sentencia While


Se basa en repetir un bloque a partir de evaluar una condición lógica, siempre que ésta sea
True.
Queda en las manos del programador decidir el momento en que la condición cambie a
False para hacer que el While finalice.
Por ejemplo, el siguiente script imprime los valores de c desde cero hasta que c sea menor
o igual que 5.

c = 0
while c <= 5:
c+=1
print("c vale",c)

1.9.2 Sentencia For


Esta sentencia se utiliza para recorrer una lista, por ejemplo

numeros = [1,2,3,4,5,6,7,8,9,10]
for numero in numeros:
print(numero)
1.10 Tuplas
Son unas colecciones parecidas a las listas, con la peculiaridad de que son inmutables.

tupla = (10,"python",[1,2],-50,[a,b,c])

1.10.1 Indexación y slicing


Al igual que las listas, podemos acceder a sus elementos, por ejemplo:

tupla[0]
tupla[-1]
tupla[2:]
tupla[2][-1]

1.11 Diccionarios
Son junto a las listas las colecciones más utilizadas. Se basan en una estructura mapeada
donde cada elemento de la colección se encuentra identificado con una clave única. Por tanto,
no puede haber dos claves iguales. En otros lenguajes se conocen como arreglos asociativos.
Se inicia con el siguiente comando:

vacio = {}

Para cada elemento se define la estructura -¿ clave:valor

colores = {’amarillo’:’yellow’,’azul’:’blue’}

También se pueden añadir elementos sobre la marcha

colores[’verde’] = ’green’

Las claves también pueden ser números, pero son un poco confusas

numeros = {10:’diez’,20:’veinte’}
numeros[10]

Se puede modificar un valor a partir de la clave

colores[’amarillo’] = ’white’

1.11.1 Función del()


Sirve para borrar un elemento del diccionario.

del(colores[’amarillo’])
1.11.2 Trabajando directamente con registros
edades = {’Hector’:27,’Juan’:45,’Maria’:34}

Podemos aumentar la edad de Hector en un año

edades[’Hector’]+=1

También podemos sumar las edades

edades[’Juan’] + edades[’Maria’]

1.12 Lectura
La lectura se puede hacer de forma secuencial con for xx in xx. Es posible utilizar una
iteración for para recorrer los elementos del diccionario:

for edad in edades:


print(edad)

El problema es que se devuelven las claves, no los valores. Para solucionarlo deberı́amos
indicar la clave del diccionario para cada elemento.

for clave in edades:


print(edades[clave])

o podemos imprimir la clave y el valor con:

for clave in edades:


print(clave,edades[clave])

1.12.1 .items()
El método items()facilita la lectura en clave y valor de los elementos porque devuelve ambos
valores en cada iteración automáticamente:

for c,v in edades.items():


print(c,v)

Potrebbero piacerti anche