Tipos de variables
boolean, int, floats, complex, strings, tuples y lists
type(expression) devuelve el tipo de variable, type(True):bool – True con mayúculas.
Casting float(2):2.0 int(1.1):1 int(‘1’):1 int(‘A’) Error str(1):”1” str(4.5):’4.5’ int(True):1 bool(0): False
25 // 6 –> 4 Integer division
Strings
Son objetos que tienen sus métodos propios.
Name = “Michael Jackson”, se pueden usar “ o ‘ – se acceden los elementos por sus índices.
Name[0]: ‘M’ y en orden inverso Name[-1]:’n’ para ir de atrás para adelante
Name[0:4]:”Micha” Name[::2]:”McalJcsn” es cada letra par Name[0:5:2]:”Mca” las pares hasta el 5
len(Name):15 Concatenación con +
Strings son inmutables. Name[0] = ‘X’ NO cambia el valor de la primera letra del string
\ para caracteres de escape – print(“Michael \nJackson”) \t es TAB \\ es backslash
A=”Hola” B=A.upper() B:”HOLA” ; B=A.replace(‘HO’,’CO’) B:”COLA” ; Name.find(“el”):5 no existe-> –1
Se pueden comparar String con ==
2 * “hola mundo” es igual a “hola mundo hola mundo”
Con triples comillas, se incluye un texto libre con varias líneas x ej
“””
Esta es una muestra de
un string de varias líneas definido con triples comillas.
“””
Los F-srting son los formateados. Se ponen variables entre {}, con un !r al final de la variable, esta aparece entre comillas, Con !a, se expresa el código ascii. ejemplos
str.strip() saca los espacios antes y despues del string, str.lsstrip() lo s de la izquierda y str.rstrip() derecha
str = ‘prueba’
print(f”Esta es una {str} de {str!r}”)
>> Esta es una prueba de ‘prueba’
‘-5’.zfill(4)
>> ‘–005’
words = “uno, dos, tres”
lstwords = words.split(‘,’) // Separa según separador en una lista
print(lstwords)
>> [‘uno’, ‘dos’, ‘tres’]
‘-’.join(lstwords) // junta las palabras con un – entre ellas
>> ‘uno-dos-tres’
Tuples
Tuple1 = (“disco”, 10, 1.2) Se acceden por índices como los Strings Tuple1[0]: “disco” Tuple[-1]:1.2
Operaciones entre Tuples: Tuple2 = Tuple1 + (“hard rock”, 10) (“disco”, 10, 1.2, “hard rock”, 10)
Tuple2[0:3] : (“disco”, 10, 1.2) – El último valor de índice es uno más del que se quiere obtener y es len().
Tuples son inmutables. No se pueden manipular sino que hay que crear otro.
RatingsSorted = sorted(Ratings)
Se puede hacer Nesting donde un tuple contenga a otro. NT=(1,2,(“pop”,”rock”)), NT[2]:(”pop”, “rock”)[1]=”rock”
Collections
Lists
Son mutable y pueden contener strings, números, tuples y lists.
A=[“Mucharl Jackson”, 10.1, 1982, [1,2], (‘A’, 1)]
Se acceden por subíndices Para B=[1,2,[3,’a’],[4,’b’]] , B[3][1] es igual a ‘b’
Para borrar el elemento n-avo, del(B[n])
Slicing
B[3:5] representa todos los elementos entre el índice 3 y 5 (excluido)
B[:5] todos los elementos desde el principio hasta el 5 (excluido)
B[5:] todos los elementos desde el 5 hasta el final incluido
B[:] todos los elementos de la lista
B[-1] último elemento, B[-2] penúltimo elemento
Conversión de String a List, usa como separador el space – “hard rock”.spli() [“hard”,”rock”]
Se puede seleccionar el separador “A,B,C”.split(“,”) [“A”, ”B”, ”C”]
A=B[:] ó A=list(B) Copia una lista en una nueva variable con diferente espacio de memoria
La funcion sorted(lista) devuelve una nueva lista ordenada –sin modificar la original- que hay que guardar en otra variable de tipo lista, Exite min(), max(), len(), list(), range()
B.sort() ordena la lista actual modificándola.
B.extend([“pop”, 10]) agrega a la cola de una existente, también suma listas con +
CUIDADO, si se trata de un numpy.array, entonces se suman elemento a elemento.
B.append([“pop”, 10]) agrega solo un elemento y en este caso es una lista.
append(item), insert(item, pos), remove(pos), pop([pos]), clear(), index(item), count(item), reverse(), copy()
Arrays
similares a las listas pero se puede operar aritméticamente sobre ellos. Si se divide por un número, lo hace por cada elemento.
B es un array([1, 2, 3, 4]), B[1] –>2, B > 2 es un array([False, False, True, True])
B[B > 2] -> array([3, 4]) !!!!!!!!!!!! Así se puede sacar un subset de un array a otro o reeplazar un valor determinado en todo el array.
factorials = map(math.factorial, range(5))
factorials = [math.factorial(num) for num in range(5)]
factorials_of_odds = (math.factorial(num) for num in xrange(10**10) if num % 2 != 0)
xrange(10**10) ** is the exponent operator ^. The usual range function, when called with 10**10 as an argument, would have to allocate and keep in memory a ten billion–elements list. Instead of preallocating such a big list, xrange returns an iterator, which only when iterated over, produces elements up to ten billion, one at a time.