Notas sobre Python

python

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.