miércoles, 25 de mayo de 2016





Python | Lenguage de Programación

 

Python-logo-notext.svg
Python Software Foundation
Python es un lenguaje de programación interpretado 
cuya filosofía hace hincapié en una sintaxis que favorezca
un código legible.
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.
Es un lenguaje interpretado, usa tipado dinámico y es 
multiplataforma.

Es administrado por la Python Sofware Foundation. Posee
una licencia de código abierto, denominada Python
Software Foundation License, que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores. 




Funciones

  • Las funciones se definen con la palabra clave de f, seguida del nombre de la función y sus parámetros. Otra forma de escribir funciones, aunque menos utilizada, es con la palabra clave lambda.
  • El valor devuelto en las funciones con def será el dado con la instrucción return.


def:

>>> def suma(x, y = 2):
...     return x + y # Retornar la suma del valor de la variable "x" 
y el valor de "y"
...
>>> suma(4) # La variable "y" no se modifica, siendo su valor: 2
6
>>> suma(4, 10) # La variable "y" sí se modifica, siendo su nuevo
valor: 10
14 
 

 
lambda:

>>> suma = lambda x, y = 2: x + y
>>> suma(4) # La variable "y" no se modifica, siendo su valor: 2
6
>>> suma(4, 10) # La variable "y" sí se modifica, siendo su nuevo
valor: 10
14



Desarrollo

Desarrollar aplicaciones en python


SL4A (Scripting Layer for Android)

    *Permite a los desarrolladores editar, ejecutar scripts e interactuar con intérpretes en los
    dispositivos móviles.

   *Es posible acceder a muchas de las API's del sistema operativo deforma cómoda.
    
    *SL4A es open­source, se distribuye bajo licencia Apache 2.0 y soporta
   otros lenguajes aparte de python: Beanshell, JRuby, Lua, Perl y Rhino.



Entornos para un desarrollo cómodo

ADB
 Herramienta que viene juntocon el SDK de android y que nos permite acceder y, por lo
tanto, controlar un dispositivoandroid desde una PC.

Emulador Android
 Con este emulador secargan y crean los AVD(Android Virtual Device), en
 los que se especifica el hardware y la versión delsistema operativo.



Distribuir nuestros scripts al público
Generando un barcode
Este método sirve tanto para desarrollar más cómodamente como
para distribuir tu script a un público limitado (Desarrolladores)
*Generador QR online
http://zxing.appspot.com/generator/


Este es un buen método siempre y cuando tu público se dediquetambien a la programación.



 Otras formas de desarrollo, kivy


Kivy es un framework/toolkit con núcleo python que nos permite desarrollar aplicaciones
multi­touch para distintas plataformas (iOS, Windows, Android...)

http://kivy.org/docs/gettingstarted/intro.html

El proceso de empaquetamiento parece ser más cómodo y eficaz.






Características y paradigmas

Python usa tipado dinámico y conteo de referencias para la administración de memoria.
Una característica importante de Python es la resolución dinámica de nombres; es decir, lo que enlaza un método y un nombre de variable durante la ejecución del programa.
Otro objetivo del diseño del lenguaje es la facilidad de extensión. Se pueden escribir nuevos
módulos fácilmente en "C" o "C++". Python puede incluirse en aplicaciones que necesitan una interfaz programable.
Aunque la programación en Python podría considerarse en algunas situaciones hostil a la programación funcional tradicional del Lisp, existen bastantes analogías entre Python y los 
lenguajes minimalistas de la familia Lisp como puede ser Scheme.




Tipos de datos

 

  • Mutable: si su contenido (o dicho valor) puede cambiarse en tiempo de ejecución.
  • Inmutable: si su contenido (o dicho valor) no puede cambiarse en tiempo de ejecución.


 Los tipos de datos se pueden resumir en esta tabla:


Tipo Clase Notas Ejemplo
str Cadena Inmutable 'Cadena'
unicode Cadena Versión Unicode de str u'Cadena'
list Secuencia Mutable, puede contener objetos de diversos tipos [4.0, 'Cadena', True]
tuple Secuencia Inmutable, puede contener objetos de diversos tipos (4.0, 'Cadena', True)
set Conjunto Mutable, sin orden, no contiene duplicados set([4.0, 'Cadena', True])
frozenset Conjunto Inmutable, sin orden, no contiene duplicados frozenset([4.0, 'Cadena', True])
dict Mapping Grupo de pares clave:valor {'key1': 1.0, 'key2': False}
int Número entero Precisión fija, convertido en long en caso de overflow. 42
long Número entero Precisión arbitraria 42L ó 456966786151987643L
float Número decimal Coma flotante de doble precisión 3.1415927
complex Número complejo Parte real y parte imaginaria j. (4.5 + 3j)
bool Booleano Valor booleano verdadero o falso True o False





Ventajas y Desventajas de usar Python


  • Ventajas:
    • Completo conjunto de elementos gráficos (listados, arboles, grillas, etc.)
    • Flexible control del comportamiento de la interface
    • Rápido y de Apariencia nativa (diseñado para utilizar funciones nativas de cada plataforma)
    • "Baterias Incluidas": más de 12 librerias y utilitarios complementarios (ver comparación)
    • Independencia: no esta orientado a ningún entorno, ni QT ni GTK, hay una capa mas que agrega un grado de libertad adicional
    • No se cierra en el mínimo denominador común; soporta las características comunes de Windows, y las emula en Linux/Mac OS cuando no se pueden hacer nativamente (y viceversa).
    • Es mas "pitónico", por ej. espacio de nombres mas claro, sin referencias a C/C++, etc.
    • Permite separar completamente el diseño de la interface en XML del código python
    • Es fácil armar componentes personalizados, tanto que incorpora widgets que no están en wxWidgets mismo, ya que están escritos en Python.
    • Documentación completa y ejemplos extensivos.
    • Su lista oficial de usuarios es muy activa y amigable, donde participan los desarrolladores principales del proyecto.
  • Desventajas:
    • No viene preinstalado con python, se debe instalar un paquete (wxPython en Windows y Mac OS, wxWidgets+wxPython en Linux, aunque en este último caso está generalmente está fácilmente disponible en los repositorios).
    • Relativamente mas complejo de aprender
    • Al tener un desarrollo bastante rápido y sostenido, se liberan versiones frecuentemente, lo que en la práctica le confiere cierto nivel de "volatilidad" y problemas de compatibilidad si se deben mantener varias versiones de wx para el mismo código.
    • Es una capa más sobre el toolkit gráfico que se usa debajo (ej: GTK).
    • Las características emuladas de otras plataformas no siempre se ven bien.
    • Hacer interfaces multiplataformas que se vean bien requiere conocimiento del toolkit subyacente (win32, gtk).
    • En proyectos medianos/grandes, puede ser inestable y dificil de debuggear: en windows es muy facil segfaultear si se pasan parámetros incorrectos.



Video informativo







Estas son algunas imágenes sobre este lenguaje de programación en distintas versiones

 

No hay comentarios.:

Publicar un comentario