Ir al contenido principal

Descubriendo Python

Para empezar a familiziarnos con este lenguaje empezamos por el muy común Hola Mundo
Python ocupa el 3 en el ranking de lenguajes mas usados actualmente https://www.tiobe.com/tiobe-index/

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en la legibilidad de su codigo. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional.

Guido van Rossum es un programador holandés graduado en Matemáticas y Ciencias de la Computación por la Universidad de Amsterdam en 1.982.


Es famoso por haber creado el lenguaje de programación Python. En el ambiente de los desarrolladores del lenguaje Python también se le conoce por el título BDFL (“Benevolent Dictator for Life’“), teniendo asignada la tarea de fijar las directrices sobre la evolución de Python, así como la de tomar decisiones finales sobre el lenguaje que todos los desarrolladores acatan. Van Rossum tiene fama de ser bastante conservador, realizando pocos cambios al lenguaje entre versiones sucesivas, intentando mantener siempre la compatibilidad con versiones anteriores.

-Guias de estilo Basica para python https://www.python.org/dev/peps/

Formateo del código
Indentación
Usa 4 espacios por cada nivel de indentación.

Para código realmente antiguo que no quieras estropear, puedes continuar usando tabuladores de 8 espacios.

¿Tabuladores o espacios?
Nunca mezcles tabuladores y espacios.

La forma más popular de indentar en Python es utilizar sólo espacios. La segunda forma más popular es usar sólo tabuladores. El código indentado con una mezcla de tabuladores y espacios debería reformatearse y usar espacios exclusivamente. Cuando se invoca el intérprete de línea de comandos de Python con la opción -t, este muestra avisos sobre código que mezcla tabuladores y espacios. Cuando se utiliza -tt estos avisos se convierten en errores. ¡Estas opciones son altamente recomendables!

Para nuevos proyectos, se recomienda firmemente el uso de espacios en lugar de tabuladores. La mayoría de los editores tienen características que hacen esto bastante sencillo.

Tamaño máximo de línea
Limita todas las líneas a un máximo de 79 caracteres.

Todavía existen muchos dispositivos por ahí que están limitados a 80 caracteres por línea; además limitando el ancho de las ventanas a 80 caracteres posibilitas el tener varias ventanas una al lado de otra. El ajuste de línea por defecto en este tipo de dispositivos no da buenos resultados. Por lo tanto, por favor limita todas las líneas a un máximo de 79 caracteres. Para cadenas de texto largas (cadenas de documentación o comentarios), es aconsejable limitar el ancho a 72 caracteres.

La forma preferida de dividir líneas largas es utilizar la característica de Python de continuar las líneas de forma implícita dentro de paréntesis, corchetes y llaves. Si es necesario, puedes añadir un par de paréntesis extra alrededor de una expresión, pero algunas veces queda mejor usar una barra invertida. Asegurate de indentar la línea siguiente de forma apropiada. Algunos ejemplos:

class Rectangle(Blob):

    def __init__(self, width, height,
                 color='black', emphasis=None, highlight=0):
        if width == 0 and height == 0 and \
           color == 'red' and emphasis == 'strong' or \
           highlight > 100:
            raise ValueError("sorry, you lose")
        if width == 0 and height == 0 and (color == 'red' or
                                           emphasis is None):
            raise ValueError("I don't think so")
        Blob.__init__(self, width, height,
                      color, emphasis, highlight)
Líneas en blanco
Separa las funciones no anidadas y las definiciones de clases con dos líneas en blanco.

Las definiciones de métodos dentro de una misma clase se separan con una línea en blanco.

Se pueden usar líneas en blanco extra (de forma reservada) para separar grupos de funciones relacionadas. Las líneas en blanco se pueden omitir entre un grupo de funciones con una sola línea (por ejemplo, con un conjunto de funciones sin implementación).

Usa líneas en blanco en las funciones, de forma limitada, para indicar secciones lógicas.

Python acepta el caracter control-L (o lo que es lo mismo ^L) como un espacio en blanco; muchas herramientas utilizan este caracter como separador de páginas, por lo que puedes usarlos para separar páginas de secciones relacionadas en tu archivo.



Espacios en blanco en expresiones y sentencias
Evita espacios en blanco extra en las siguientes situaciones:

Inmediatamente después de entrar en un paréntesis o antes de salir de un paréntesis, corchete o llave.

Sí:
    spam(ham[1], {eggs: 2})
No:
    spam( ham[ 1 ], { eggs: 2 } )
Inmediatamente antes de una coma, punto y coma, o dos puntos:

Sí:
    if x == 4: print x, y; x, y = y, x
No:
    if x == 4 : print x , y ; x , y = y , x
Inmediatamente antes de abrir un paréntesis para una lista de argumentos de una llamada a una función:

Sí:
    spam(1)
No:
    spam (1)
Inmediatamente antes de abrir un paréntesis usado como índice o para particionar (slicing):

Sí:
    dict['key'] = list[index]
No:
    dict ['key'] = list [index]
Más de un espacio alrededor de un operador de asignación (u otro operador) para alinearlo con otro.

Sí:
    x = 1
    y = 2
    long_variable = 3
No:
    x             = 1
    y             = 2
    long_variable = 3
Otras Recomendaciones
Rodea siempre los siguientes operadores binarios con un espacio en cada lado: asignación (=), asignación aumentada (+=, -= etc.), comparación (==, <, >, !=, <>, <=, >=, in, not in, is, is not), booleanos (and, or, not).

Usa espacios alrededor de los operadores aritméticos:

Sí:
    i = i + 1
    submitted += 1
    x = x * 2 - 1
    hypot2 = x * x + y * y
    c = (a + b) * (a - b)
No:
    i=i+1
    submitted +=1
    x = x*2 - 1
    hypot2 = x*x + y*y
    c = (a+b) * (a-b)
No uses espacios alrededor del signo '=' cuando se use para indicar el nombre de un argumento o el valor de un parámetro por defecto.

Sí:
    def complex(real, imag=0.0):
        return magic(r=real, i=imag)
No:
    def complex(real, imag = 0.0):
        return magic(r = real, i = imag)
Generalmente se desaconsejan las sentencias compuestas (varias sentencias en la misma línea).

Sí:
    if foo == 'blah':
        do_blah_thing()
    do_one()
    do_two()
    do_three()
Preferiblemente no:
    if foo == 'blah': do_blah_thing()
    do_one(); do_two(); do_three()
Aunque a veces es adecuado colocar un if/for/while con un cuerpo pequeño en la misma línea, nunca lo hagas para sentencias multi-clausula.

Preferiblemente no:
    if foo == 'blah': do_blah_thing()
    for x in lst: total += x
    while t < 10: t = delay()
Definitivamente no:
    if foo == 'blah': do_blah_thing()
    else: do_non_blah_thing()

    try: something()
    finally: cleanup()

    do_one(); do_two(); do_three(long, argument,
                                list, like, this)

    if foo == 'blah': one(); two(); three()

Comentarios

Entradas populares de este blog

SISTEMAS OPERATIVOS EN RED

SISTEMAS OPERATIVOS EN RED -Arquitectura cliente/servidor Procesa la información de un modo distribuido.De esta forma, los usuarios finales pueden estar dispersos en un área geográfica mas o menos extensa (un edificio,una localidad,un país,...) y acceder a un conjunto común de recursos compartidos. Caracteristicas: Además, el acceso debe ser transparente (el cliente puede desconocer la ubicación física del recurso que pretende utilizar) y, preferiblemente, multiplataforma, es decir, independiente del sistema operativo, del software de aplicación e incluso del hardware. - protocolos asimétricos , donde el servidor se limita a escuchar, en espera de que un cliente inicie una solicitud. -El servidor ofrecera recursos . -El servidor ofrecerá también una serie de servicios, que serán usados por los clientes. Estos servicios estarán encapsulados, para ocultar a los clientes los detalles de su implementación (por ejemplo, aceptar el requerimiento de un cliente sobre una...

¿Cuantos años hacen realmente del sistema binario?

Bueno pues nos remontamos al siglo III a.c para ver el pionero y el posiblemente creador de este sistema  Pingala  (पिङ्गल) procedente de la India " Pingala presentó la primera descripción conocida de un sistema de numeración binario. Describió dicho sistema en relación con la lista de métricas védicas y las sílabas cortas y largas. Su obra también contiene las ideas básicas del mātrā-meru (Sucesión de Fibonacci) y el meru-prāstāra (el Triángulo de Pascal).2" (Entrada de Wikipedia) Fue El moderno sistema de numeración binario documentado por Gottfried Leibniz en el siglo XVII en su trabajo Explication de l’Arithmétique Binaire. El sistema de Leibniz utilizó 0 y 1, tal como el sistema numérico corriente de nuestros días. Mi edad en binario es 10011 ¿Cual es la tuya? Mi edad en Octal es 23 ¿Cual es la tuya? Mi edad en Hexadecimal es 13 ¿Cual es la tuya?

Instalacion de modulos de terceros en Odoo 12

Pasos instalacion modulo de terceros Odoo 12  Vamos a instalar un modulo de terceros en nuestro odoo12  https://www.odoo.com/apps/modules/category/Point%20of%20Sale/browse?series=12.0&price=Free  en la propia pagina de odoo nos da un lista amplia de modulos de terceros Descomprimios la carpeta en la siguiente ruta C:\Program Files (x86)\Odoo 12.0\server\odoo\addons Una vez descomprimido la carpeta reiniciamos el servicio de odoo Ahora vamos a odoo y buscamos el modulo añadido(Activar modo desarollador) y actualizar lista de aplicaciones , quita todos los filtros y busca por el nombre de la carpeta