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.

Se puede inicializar un array indicando el tipo de dato a guardar vals = array(‘i’, [3,4,5]) o sin valores

vals.typecode tiene el tipo de variable del array.

Dictionary

Son listas donde el primer elemento es el key y el segundo el contenido, se usan entre {}

Dict={“A”:1,”B”:”2″,”C”:[3,3,3],”D”:(4,4,4),’E’:5,’F’:6}

Dict[“D”] es (4,4,4)

Se agrega directamente haciendo una asignación de un nuevo key

Dict[‘Z’] = ‘piojo’ ; para borrar:  del(Dict[‘B’]) y borra el key y el value

“Z” in Dict da True o False según exista o no en el diccionario.

Dict.keys() devuelve una lista con todos los keys  [“A”, ”B”, ”C”, ”D”, “E”, ”Z”]

Dict.values() devuelve una lista con todos los valores  [1, ”2”, [3,3,3], (4,4,4), 5, ”piojo”]

Sets

Son listas desordenadas sin índice con elementos únicos y pueden contener cualquier tipo de dato.

Se puede convertir una lista en un set con la función set()

album_list = [“MJ”, “Thriller”, “Thriller”, 1982]

album_set = set(album_list)

album_set: {“MJ”, “Thriller”, 1982}  elimina los repetidos ya que deben ser elementos únicos

Se agrega album_set.add(“nuevo item”) y se elimina con album_set.remove(“item”), si se agrega un item dos veces, lo ignora  “MJ” in album_set devuelve True

Se pueden usar operadores tal como diagramas de Venn set3 = set1 & set2 (intersección), la unión se hace mediante un método  set1.union(set1) – se puede chequear si es subset con set3.issubset(set1)

Control de Flujo

La indentación marca los diferentes bloques de ejecución

if (condition):
    statement
elif (condition):
    statement
else:
    statement

for i in range(0,5):
    var[i] = 0

for elemento in lista_de_elementos:
   statement

for i, x in enumerate([“a”, “b”, “c”]):
   print(i, x)

salida: 0a 1b 2c

while(condition):
    statement

 For Else

for num in nums:    

     if num % 5 == 0           print(num)
          break
else:
     print(“not found”)

en este código, con el else indentado a la altura del for, se ejecuta SI NO HIZO NINGUN BREAK

Operador Ternario

value if condition else alternative

print(2 if x<0 else 2)

ShortHand Ternary

>>> output = None
>>> msg = output or "No data returned"
>>> print(msg)
No data returned

Funciones

def f1(input):

    output=XXXX

return output

 

def ImprimirNombres(* nombres)       # cantidad variables de parámetros.

    global GlobalVar                                  # Declaración de variable global accesible por fuera de la func.

    for nombre in nombres:

           print(nombre)

def a_function(arg1, arg2=“default”, *args, **kwargs):

“””This is a short piece of documentation for this function. It can span multiple lines. “””


print “arg1:”, arg1 # arg1 is a mandatory parameter

print “arg2:”, arg2 # arg2 is an optional parameter
with a default value

print “args:”, args # args is a tuple of positional parameters


print “kwargs:”, kwargs # kwargs is a dictionary of keyword parameters

>>> a_function(10)

arg1: 10

arg2: default

args: ()

kwargs: {}

>>> a_function(10, “twenty”, arg3=30, arg4=“forty”)

arg1: 10

arg2: twenty

args: ()

kwargs: {‘arg3’: 30, ‘arg4’: ‘forty’}

>>> a_function(arg2=“twenty”, arg1=10, arg3=30, arg4=“forty”)

arg1: 10

arg2: twenty

args: ()

kwargs: {‘arg3’: 30, ‘arg4’: ‘forty’}

Multireturn

def multi_return():

# These are automatically wrapped up

# and returned in one tuple

>>> values = multi_return()

return 10, 20, ‘thirty’      # Devuelve más de un valor y se empaqueta automáticamente en un tuple

>>> print values

(10, 20, ‘thirty’)

# La función puede recibir los valores también de esta forma

>>> a, b, c = multi_return()  # igualando 3 variables a una función que devuelve tres valores.

>>> print a, b, c

10 20 thirty

Classes

class class1(object)

    def __init___ (self, val1=5, val2):   ‘default value 5

            self.val1=val1

            self.val2=val2

Se crea un objeto  O1 = class1(val1, val2)

image

..

Swap variable values

a, b = b, c

Ingreso de datos

x = input(“ingrese nombre: ”)   Input siempre devuelve un str.

x = input(“ingrese un caracter: ”)[0]

x = int(input(“Ingresar un número: ”))

x = eval(input(“Ingresar un fórmula: ”))

x = int(sys.argv[1])  así entran los parámetros de ejecución, argv[0] es el nombre del programa. Import sys

Bitwise

NOT  ~12  ->  -13    ,    AND    12 & 13  ->  12    ,    OR    12 | 13  ->  13    ,    12 ^ 13 –> 1    ,    10 << 2 –> 40

Importación de Módulos

import math permite usar las funciones con math.sqr   x=math.sqr(2) math.e  math.pi

import math as m permite usar las funciones con m.sqr   x=m.sqr(2) m.e  m.pi también anda math.

from math import sqr, pow  importa solo esas funciones y se usa directamente x=pow(3) sin math.

from math import *  levanta todas las funcoines para usar directamente sin math. ni alias.


if so<\strong><\span><\code>

Check Also

GeoJSON Right Hand Rule Fix in Python

Qué es el right hand rule? El “right hand rule” (regla de la mano derecha) …

Leave a Reply

Your email address will not be published. Required fields are marked *