0% encontró este documento útil (0 votos)
5 vistas3 páginas

Referencia Básica de Python

Cargado por

minchano73
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas3 páginas

Referencia Básica de Python

Cargado por

minchano73
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

sadgiqewhfuighewsoikgfjjhjde

ihjoesfj7utnmiuywerih7tefr
HOJA DE REFERENCIA - PYTHON - SOLO LO BÁSICO
GENERAL CORTE POR TIPOS DE SECUENCIA † 4. Reversed – itera sobre los elementos de una
Distingue entre mayúsculas y minúsculas. El índice comienza † Tipos de secuencia: 'str', 'array', 'tuple', 'list', etc. secuencia en orden inverso.
desde 0. Espacios o tabulaciones para bloques de código. list1[inicio:detener]
Notación list(reversed(range(10))) # *
AYUDA list1[inicio:detener:paso] # §
* reversed() devuelve el iterador, list() lo convierte en
§ Toma cada 2 elementos list1[::2]
Página de inicio de ayuda help() una lista.
§ Invertir una cadena str1[::-1]
Ayuda de función help([Link])
CONTROL Y FLUJO
Ayuda de modulo help(re) NOTA: 'inicio' y 'detener' son opcionales; Incluye el
índice 'inicio', pero 'detener' NO. 1. Operadores para condiciones en 'if else':
MÓDULO (O LIBRERÍA) DICCIONARIOS (HASH MAP) Verifica si dos variables son
var1 is var2
el mismo objeto
Es simplemente un archivo con extensión .py Crear dict1 ={'clave1' :'valor1',2 :[3, 2]}
Lista contenido de modulo dir(modulo1)
. . . son objetos diferentes var1 is not var2
Crear de secuencia dict(zip(keyList, valueList)) Verifica si dos variables
Cargar un modulo import modulo1 # * var1 == var2
Obtener, Fijar o dict1['clave1'] # * tienen el mismo valor
Llamar función de modulo modulo1.func1() dict1['clave1'] = 'newValue'
Insertar elemento
* crea un nuevo espacio de nombres y ejecuta todas las Obtener con valor def [Link]('clave1',defVal) # ** ADVERTENCIA: Utilice los operadores 'and', 'or', 'not'
declaraciones en el archivo .py asociado dentro de ese espacio de Verificar existencia 'clave1' in dict1
para condiciones compuestas, no &&, ||, !.
nombres. Si desea cargar el contenido del módulo en el espacio Eliminar elemento del dict1['clave1']
de nombres actual, use 'from module1 import *' 2. Uso común del operador 'para':
Obtener lista de claves [Link]() # ***
Iterando sobre una
TIPOS DE ESCALARES Obtener lista de valores [Link]() # *** colección (lista o tupla) o for elemento in iterator:
[Link](dict2) un iterador
Verificar el tipo de datos: type(variable) Actualizar valores # valores dict2 a dict1 . .. Si los elementos son
secuencias, se pueden for a, b, c in iterator:
SEIS TIPOS DE DATOS DE USO COMÚN * Excepción 'KeyError' si la clave no existe. 'desempaquetar'
1. int/long* - Large int se convierte en long ** 'get()' por defecto (no 'defaultValue') devolverá 3. 'pass' - declaración de no operación. Se
2. float* - 64 bits, no hay tipo 'doble' 'None' si la clave no existe. utiliza en bloques donde no hay acciones.
3. bool* - True o False *** Devuelve las listas de claves y valores en el mismo
orden. El orden no es un orden en particular, es muy
4. Expresión ternaria - no bulliciosa 'if else'
4. str* - valor ASCII en 2.x y Unicode en 3 probable que no esté ordenado.
v=true-expr if condition else false-expr
• Entre comillas simples / dobles / triples Tipos de clave de diccionario válidos 5. Sin declaración de switch/case, use if/elif.
• Se trata como otras secuencias • Las claves deben ser inmutables como los tipos PROGRAMACIÓN ORIENTA A OBJETOS
• Carácter especial con \ o prefacio con r escalares (int, float, string) o tuples (todos los 1. 'objeto' es la raíz de todos los tipos
str1 = r'this\f?ff' objetos en la tupla también deben ser
2. Todo (número, cadena, función, clase,
inmutables)
• Formateo de varias maneras módulo, etc.) es un objeto, cada objeto
• El término técnico aquí es 'hashability',
plantilla = '%.2f %s haha $%d' compruebe si un objeto es hashable con el tiene un 'tipo'. La variable de objeto es un
str1 = plantilla % (4.88, 'hola', 2) hash ('cadena'), hash ([1, 2]); esto fallaría. puntero a su ubicación en la memoria.
* str(), bool(), int() y float() también son funciones de CONJUNTOS (SET) 3. Los objetos son contados por referencia.
conversión de tipo explícito. • Colección desordenada de elementos ÚNICOS. [Link](5) => x
a = 5, b = a # Crea una 'referencia' al
5. NoneType(None) - valor 'nulo' (SOLO existe • Son como los diccionarios pero solo con claves. obj derecho de =, => a y b apuntan a 5
una instancia del objeto None) Crear set([3, 6, 3]) {3, 6, 3} [Link](5) => x + 2
• None no es una palabra clave reservada, Verificar si es subconjunto [Link](set2) del(a); [Link](5) => x + 1
Verificar si es superconjunto [Link](set2)
sino una instancia única de 'NoneType' Verificar si es mismo contenido set1 == set2
4. Class – forma basica:
• None es un valor predeterminado para Unión (or) set1 | set2
class MiObjeto(object):
# 'self' es 'this' de Java/C++
argumentos de funciones opcionales: Intersección (and) set1 & set2 def __init__(self, name):
def func1(a, b, c = None) Diferencia set1 - set2 [Link] = name
def miembroFunc1(self, arg1):
• Uso común de None: Diferencia simétrica (xor) set1 ^ set2
..
@staticmethod
if variable is None:
FUNCIONES def classFunc2(arg1):
6. datetime - mod. integrado "fecha y hora" Argumentos de la función se pasan por referencia. ..
brinda los tipos 'datetime', 'date', 'time'. obj1 = MiObjecto('name1')
• Forma básica obj1.miembroFunc1('a')
• 'datetime' combina 'date' y 'time' def func1(posArg1, keywordArg1 = 1, ...): MiObject.classFunc2('b')
Crea obj dt1=[Link]('20200722', '%Y%m%d')
5. Útil herramienta interactiva:
Obtiene el obj [Link]() [Link]() NOTA: Los argumentos de palabras clave DEBEN
dir(var1) # Lista todos los métodos del obj.
datetime a cadena [Link]('%m/%d/%Y %H:%M') seguir argumentos posicionales; NO es "evaluación
Cambiar val dt2 = [Link](minute=0,second=30) perezosa", las expresiones se evalúan de inmediato.
OPERACIONES DE CADENA COMUNES
Obtener dif. diff=dt1-dt2 # '[Link]' • Mecanismo de llamada de función:
Lista / tupla concatenada con ','.join(['v1','v2','v3'])
Nota: La mayoría de obj. son mutables, excepto cadenas y tuplas. [Link] funciones son locales para el alcance del separador # => 'v1, v2, v3'
nivel del módulo. Formateo s1 = 'Mi nombre es {0} {nombre}'
ESTRUCTURAS DE DATOS ns1=[Link]('Martin',nombre='Nelbren')
NOTA: Todas las llamadas a funciones que no son Get, ej:
[Link], los argumentos se empaquetan de cadena
Dividir sl1=[Link](' ') #=> ['Mi', 'nombre',... ]
[Link]() son operaciones in situ (sin crear un nuevo en una tupla y dict, la función recibe una tupla ns1[1:8] # => 'i nombr'
Obtener subcadena
objeto) a menos que se indique lo contrario. 'args' y dict 'kwargs' y se desempaqueta. month = '5'
Relleno de cadena con ceros
TUPLAS • Uso común de 'Las funciones son objetos': [Link](2) => '05'
def func1(ops=[[Link],user_def_func, ..], ..):
Secuencia unidimensional, de longitud fija e for function in ops: MANEJO DE EXCEPCIONES
inmutable de objetos de CUALQUIER tipo. value = function(value)
1. Forma básica
Crear tup1 = 4,5,6 tup2 = (6,7,8)
VALORES DE RETORNO try:
Crear anidada tup1 = (4, 5, 6), (7, 8) ..
• None se devuelve si se llega al final de la función except ValueError as e:
Convertir secuencia/iterator a tupla tuple([1,0, 2]) print e
sin una declaración de retorno.
Concatenar tup1 + tup2 except (TypeError, AnotherError):
• Valores múltiples regresan por UN objeto tupla. ..
Desempaquetar a, b, c = tup
except:
return (valor1, valor2)
Intercambiar variables b, a = a, b ..
valor1, valor2 = func1(..) finally:
..
LISTAS
ANONYMOUS (LAMBDA) 2. Disparar la excepción manualmente
Secuencia unidimensional, de longitud variable, raise AssertionError # Error de aserción
mutable (modificable) de objs. de CUALQUIER tipo. • Función que consiste en una sola declaración.
raise SystemExit # solicitar salida de programa
Crear list1=[1,'a',3] list2 = list(tup1) lambda x : x * 2 # def func1(x):return x * 2 raise RuntimeError('Mensaje de error: ..')

Concatenar list1 + list2 [Link](list2) • Aplicación de funciones lambda: 'curring', también


conocido como derivar nuevas funciones de las COMPRENSIONES LISTAS, CONJUNTOS Y DICCIONARIOS
Agregar al final de lista [Link]('b')
Insertar en posición [Link](posIdx, 'b') # **
existentes mediante la aplicación de args. parciales. Sintáctico para código sea más fácil de leer y escribir
Inverso insertar valueAtIdx=list1. pop(posIdx) ma60 = lambda x : pd.rolling_mean(x, 60) 1. Comprensiones de Lista
Eliminar primer valor de la lista [Link]('a') • Forme de manera concisa una nueva lista filtrando los
FUNCIONES UTILES PARA ESTRUCTURAS DE DATOS elementos de una colección y transformando los
Verificar existencia 3 in list1 => True # ***
1. Enumerate - devuelve una secuencia (i, valor) elementos que pasan el filtro en una expresión concisa.
Ordenar [Link]()
de tuplas donde i es índice del elemento actual. [expr for val in coleccion if condicion]
Ordenar con la función [Link](key = len) Un atajo de:
de usuario # ordenar por len for i, value in enumerate(coleccion):
2. Sorted - devuelve una nueva lista ordenada de resultado = []
* La concatenación usando '+' es costosa ya que se debe crear for val in coleccion:
una nueva lista y copiar los objetos. Es preferible extend(). cualquier secuencia
sorted([2, 1, 3]) => [1, 2, 3] if condicion:
** Insertar también es costoso en comparación con append.
*** Comprobar que una lista contiene un valor es mucho más
sorted(set('abc bcd')) => [' ','a','b','c','d'] [Link](expr)
lento que los diccionarios y conjuntos, ya que se realiza un 3. Zip – empareja elementos de listas, tuplas La condición del filtro puede omitirse, dejando la expresión.
escaneo lineal donde otros (tablas hash) en tiempo constante. u otras secuencias creando lista de tuplas: 2. Comprensiones de Diccionarios
{key-expr : val-expr for val in coleccion if condicion}
Módulo ' bisect incorporado ‡ zip(seq1, seq2) =>
3. Comprensiones de Conjuntos
• Búsqueda e inserción binarias en lista ordenada. [('seq1_1', 'seq2_1'), (..), ..]
Igual que la lista, excepto con {} en lugar de []
• '[Link]' busca la ubicación, donde • Puede tomar un número arbitrario de
secuencias. El número de elementos que 4. Compresiones de Listas anidadas
'[Link]' realmente se inserta en esa ubicación. [expr for val in coleccion for innerVal in val if condic]
‡ ADVERTENCIA: las funciones del módulo bisect no produce es determinado por la sec. 'más corta'.
verifican si la lista está ordenada, ya que sería muy • Iteración simultánea sobre múltiples secuencias:
costoso computacionalmente. Por lo tanto, usarlos en for i, (a, b) in enumerate(zip(seq1, seq2)): v0.0.1 – 2020-07-23 – [Link]
una lista no ordenada tendrá éxito sin errores, pero da • Convertir lista de filas en una lista de columnas: Presentación y adaptación por Martin Cuellar
seq1, seq2 = zip(*zipOutput)
lugar a resultados incorrectos. Original creado por Arianne Colton y Sean Chen

Common questions

Con tecnología de IA

Lambda functions are concise but can obscure code readability and debugging due to their inline nature and lack of explicit naming. They offer limited functionality as they are restricted to single expressions, which can complicate error handling and limit reuse. Consequently, their use is best confined to simple operations or callbacks .

In Python, positional arguments must precede keyword arguments. Default values are provided to keyword arguments and if not specified, will default to 'None' if accessed without explicit assignment during function calls. This setup supports flexible argument configurations while preventing argument misinterpretation .

Mutable data types like lists can be changed within functions, affecting the original data since they are passed by reference. Immutable types like strings and tuples do not have this issue since their values cannot be altered within functions, reducing side effects .

Python employs reference counting for memory management. Each object has a reference count, indicating how many variables point to it. When an object's reference count drops to zero, it's eligible for garbage collection, freeing memory. This system ensures efficient memory use but requires careful management to avoid cyclic references .

The 'bisect' module is used for managing sorted lists. It provides functions such as 'bisect.bisect' to find insertion points and 'bisect.insort' to insert elements while maintaining order. However, the module does not check if the list is sorted, which can lead to errors if used incorrectly .

List comprehensions provide a concise syntax for creating lists, allowing elements to be filtered and transformed with minimal code. This enhances readability and potentially improves performance by consolidating operations that would otherwise require multiple lines or iterations .

Python is case-sensitive, meaning it distinguishes between uppercase and lowercase letters in variable names and other identifiers. Therefore, variable names like 'Var' and 'var' would be considered different variables .

The 'try-except-finally' construct manages exceptions by allowing specific error handling ('except') and certain operations to run ('finally'), regardless of exceptions. While enhancing robustness, excessive use can clutter code and mask underlying issues if exceptions are caught too generically without adequate handling or logging .

Using mutable default arguments, such as lists, can lead to unintended data sharing across function calls, as they retain state between invocations. This behavior can cause security issues if sensitive information is stored or shared inadvertently, suggesting the need for cautious design and defaults set to 'None' when mutable types are involved .

Dictionaries in Python use hash tables, enabling average O(1) time complexity for look-ups, setting them apart from lists that require O(n) time. This hash-based approach significantly speeds up operations involving frequent access or insertion, though it necessitates immutable keys to maintain integrity and performance .

También podría gustarte