Tabla de Contenidos

Python

Básico

Range

for i in range(0,10)
	range(0,10,3)
	[0, 3, 6, 9]
	cadena[:]		# toda la cadena
	cadena[:-1]		# toda la cadena menos el último carácter
	cadena[3:]		# toda la cadena a partir del 3er carácter
	cadena[::-1]		# cadena invertida
    for i in xrange(0,10):
        print i

Condicionales y bucles

b = False
i = 0
while not b:
    print "hello"
    if (i >= 4):
        break
    i = i + 1

Orientado a objetos

Clases

	class cPrueba:
		def __init__(self, parA = 'Hola'):
	....
	class cPrueba:
		def __init__ (self, parA):
			MyPar = parA
	class cPrueba2 (cPrueba):
		...

Notas de clases

	def __setattr__(self, name, value):
	def __getattr__(self, name):
	def __delattr__(self, name):

Funciones del lenguaje

Función type

Mediante esta función enviandole una variable, se nos indicará el tipo del cual es dicha variable:

    a = "afdsah"
    print type(a)		# type: str

Para comparar tipos deberemos importar el módulo types y comparar…

    import types
    a = "askfdj"
    print type(a) == types.ModuleType	# Falso, no es un módulo
    print type(a) == types.StringType	# Verdadero, a es un string
    print type(types) == types.ModuleType	# Verdadero, types es modulo

También lo podemos hacer con objetos clases pero con el atributo __class__

class Field:
    pass
f = Field ()
print f.__class__ == Field  # True

Python avanzado

Valores booleanos

Ejemplo:

    i = 5
    b = 7
    print i and b		# 7
    print b and i		# 5
    print i or b		# 5
    print b or i		# 7
	if a:
		print a
	else:
		print b

Podría sustituirse por:

	print a or b

Variables globales

Desde una función podemos acceder a una variable global, fuera de dicha función, pero no escribirla. Para ello, poder escribirla, debemos acceder a esa variable desde la función habiendo indicado antes que es la global, así: global <variable>

    NAME = "Manzana"
    def show_global():
        name = NAME
        print '(show_global) nombre: %s' % name
    def set_global():
        global NAME
        NAME = 'Naranja'
        name = NAME
        print '(set_global) nombre: %s' % name
    show_global()
    set_global()
    show_global()

Esto imprimiría:

(show_global) nombre: Manzana
(set_global) nombre: Naranja
(show_global) nombre: Naranja

Pero:

    NAME = "Manzana"
    def show_global():
        name = NAME
        print '(show_global) nombre: %s' % name
    def set_global():
        NAME = 'Naranja'
        name = NAME
        print '(set_global) nombre: %s' % name
    show_global()
    set_global()
    show_global()

Imprimiría:

(show_global) nombre: Manzana
(set_global) nombre: Naranja
(show_global) nombre: Manzana

Namespaces

Notas

Método main, un archivo de código .py puede ser llamado como módulo o como ejecutable, para controlar si la forma de llamada ha sido por como ejecutable:

if __name__ == "__main__":
	< código inicial >

Módulo por defecto

El módulo __builtin__ es el módulo que se carga inicialmente y por defecto en python. Aún así, si queremos hacer referencia, en concreto a ese haremos:

	import __builtin__
	__builtin__.<xxxx>

Otros módulos

Notas

    def Func (a):
        def func (a):
            return a * 3
        return func(a)
    print Func("Aa")
print sys.stdin.readline()
	sys.stdout = PrintRedirect('tmp.log')
	import copy
	...
	p2 = copy.copy(p1)
obj.__class__