domingo, 22 de febrero de 2009

EL MUNDO PYTHON


Hola a todos los programadores la idea principal de este blog es centrar todo lo que tiene que ver en el desarollo de aplicaciones con python. la duda de nuevos programadores es en que lenguaje inicio mi aprendisaje como programador???y los duros en java y .net no dan su brazo a torcer y los master en programacion web no les interesa porque para ellos no hay nada mejor para web sino php ...... pues en realidad python es como debio ser desde un princio Java bueno no voy a criticar a ninguno pues todos tienen ventajas y desventajas pero python promete mucho desde ya y para iniciadores en programacion es perfecto pues la escritura es elegante por obligacion mas no por convenciones ademas con python escribes aplicaciones de escritorio como web y son muy potentes no es por nada que Google esta reescribiendo su codigo a Python y no es por nada que contrataron a Guido el creador de Python para su desarollo y evolucion.en lo personal mis primeros pasos como estudiante fue C y C++ como todos sabemos C es el papa de de todo no habria windows ni Gnu-linux sin C porque en C++ serian mucho mas lento y en java un windows y un Gnu-linux serian desastrozos asi que por mi que todos estudieran C por aparte hasta convertirse es unos hacker de C ya con eso solo es estudiar las reglas del nuevo lenguaje aprender. Ademas python esta escrito en....... por supuesto con el "papa de los amores" :) si C despues salte a java y por su puesto que java alivio la vida de los programadores pero a que precio??? :( y su lucha por la multiplatoforma en aquellos dias mi maquina se recentia de mis programas con entorno grafico en java ya que lentitud de java en esos dias era muy notable con un equipito de ferreteria aun peor :D bueno dejemos el pasado y hablemos del futuro hablemos de Python en lo personal y por que aun en mi trabajos y mis aplicaciones aun no me ha tocado trabajar en Python pero no por eso no voy a dejar de ser parte hacia donde la programacion es cada vez mas cercana al lenguaje natural y por eso que todos los que van a ser participes de esta aventura novatos y guru de este lenguaje aportemos todo nuestro conocimiento en fin de mejorar y ayudar a nuestra sociedad y que los grados de libertad de richard stallman esten simpre presentes en este blog bueno me queda no vas que decirle que igual que todos ustedes quiero convertirme en un guru de Python asi que a Programar.

Características del lenguaje:


Propósito general:


Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente para la web, aunque entre sus posibilidades sí se encuentra el desarrollo de páginas.

Multiplataforma

Hay versiones disponibles de Python en muchos sistemas informáticos distintos. Originalmente se desarrolló para Unix, aunque cualquier sistema es compatible con el lenguaje siempre y cuando exista un intérprete programado para él.


Interpretado

Quiere decir que no se debe compilar el código antes de su ejecución. En realidad sí que se realiza una compilación, pero esta se realiza de manera transparente para el programador. En ciertos casos, cuando se ejecuta por primera vez un código, se producen unos bytecodes que se guardan en el sistema y que sirven para acelerar la compilación implícita que realiza el intérprete cada vez que se ejecuta el mismo código.


Interactivo

Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias. Cada sentencia se ejecuta y produce un resultado visible, que puede ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de porciones de
código rápidamente.

Orientado a Objetos

La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear programas con componentes reutilizables.

Funciones y librerías


Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc. Además, existen muchas librerías que podemos importar en los programas para tratar temas específicos como la programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip.

Sintaxis clara


Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación identada (con márgenes) de obligado cumplimiento. En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras clave begin y end. Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al código que iría dentro de una función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas notaciones y que los programas de cualquier persona tengan un aspecto muy similar.

Bueno si quieres ver las organizaciones que usan Python vean en:
http://wiki.python.org/moin/OrganizationsUsingPython

Iniciemos entoces el mundo maravilloso de python con una comparacion de codigo entre C++ y Python de esa forma ir entendiendo esos cambios que nos podria confundir.


nota: Python 3 no es compatible con versiones anteriores asi que a medida que vaya explicando los temas ire mostrando como se hacia en Python antes de la version 3 y sus cambios con referente a la nueva version, un cambio a tener presente desde ya es el print que en Python 2.x esra una palabra reservada (statement) con tratamiento especial y desde Python 3.x es una funcion ahora hay que añadirle al tradicional print los parentisis pero esto no es problema al potencial poder que ahora tiene el print:

Python 2.x
-------------

print "Hola mundo" #imprime y va a la linea
print "Hola mundo", #imprime y no va a la linea

Python 3.x
-------------
print ("Hola mundo")
print ("Hola mundo", end="")

con C++ seria:
---------------


void test(){
int i=1;
while( i<11){
printf("%d",i);
i++;
}

printf("Fin...");

}
int
main()
{
printf ("Numeros del 1 al 10
\n");
test();

return 0;
}

En Python:
-------------

def test():

i = 1

while i <11:

____print (i)

____i += 1

print ("fin..")

def main():

print ("Numeros del 1 al 10")
test()

if__name__ == "__main__":main()

Bueno el codigo en C++ no creo que haya que explicarlo o si ?????


Explicacion del codigo Python:


def test():

aquí solo estamos definiendo una funcion, pero porque : y no { pues como python te exige a que escriba el codigo identado esto quiere decir que despues de los dos puntos tabules el contenido de la funcion:


while i < 11:

____print (i)

____i += 1

como vemos print(i) y i+=1 esta aliniados a 4 espacios desde el while osea que todo las lineas que esten asi son las que el while va a reconocer como suyas, asi que como vemos ahora el print ( “fin..") sale de la sangria de 4 espacios y por ende es como decir un } cierre de ciclo.

while i < 11:

____print (i)
____i+= 1

print (" fin..")

aquí solo definimmos lo que va ser mi funcion principal no es necesario que se llame asi pueden darle el nombre que quiera "Viva los recuerdos de C" :)

def
main():

imprimimos el mensaje y llamamos a nuestra funcion test() la cual contiene nuestro bucle.

print ("Numeros del 1 al 10")

test()

bueno la siguiente linea va asi por que si :) no mentiras, Para poder definir un modulo tanto como modulo como ejecutable se puede poner al final del modulo:


if__name__ == "__main__":main()

El interprete de Python reconoce el nombre del modulo cuando lo ejecutamos como "main" y ejecuta la funcion main( ) (en este caso la llamamos asi puedes colocar el nombre que quieras) o cualquier serie de sentencias que pongamos.Sin embargo si solo importamos el módulo para usarlo en otro modulo el interprete, al no asignarle en __name__ el valor __main__ no ejecutará la función

main( ).


entendieron ??? yo tampoco :) el tecnisismo es la barrera mas cruel entre el conocimiento y mi cerebro :) haber esto es un truco de python para usar nuestro programa como un ejecutable por si solito o si las funciones que estan definidas es este programa como test() al ser importado para reutilizar mi codigo entonces cuando hago esto miremoslo directamente desde el interprete Python , digamos que nuestro archivito se llama conteo.py el obvio contiene el codigo anterior de Python

>>>import conteo

>>>conteo.test()
1

2

3

4

5

6

7

8

9
10


vas captando el uso de este truco if __name__ == "__main__":main() nuestro archivo conteo.py puede ser llamado por si solo o desde un import para usar las funciones que esten definidas alli y cunado hacemos import conteo el ignora main(). Algo muy importante ha tener en cuenta cuando hacemos import los archivos son buscados en unas rutas definidas por Python si queremos ver
cuales son esas rutas basta con hacer lo siguiente:

>>>import sys

>>>sys.path


este es el resultado en mi compu con ubuntu 8.10:

['','/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2','/usr/lib/python2.5/lib-tk',/usr/lib/python2.5/lib-dynload','/usr/local/lib/python2.5/site-packages','/usr/lib/python2.5/site packages','/usr/lib/python2.5/site-packages/Numeric','/usr/lib/python2.5/site-packages/PIL '/usr/lib/python2.5/site-packages/gst-0.10','/var/lib/python-support/python2.5',/usr/lib /python2.5/site-packages/gtk-2.0','/var/lib/python-support/python2.5/gtk-2.0','/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode']


como vemos son varias rutas donde Python busca los archivos, claro esta que podemos definir nuestra propia ruta pero de apocos :) mientras el archivo conteo.py lo podes copiar ha /usr/lib/python2.5 solo te ubicas donde esta nuestro archivo conteo.py y hacemos sudo cp conteo.py /usr/lib/python2.5


Asi que si python se quejo de esta forma:

Traceback (most recent call last):

File "<stdin>", line 1, in <module>
ImportError:
No module named hack.py


es porque cuando haces el import nuestro programa no esta almacenado en una de las rutas especificas para tal fin. Este comienzo para muchos puede ser traumatico pero maneja programacion muy basica para ver la diferencia desde lo que nos interesa a todos en la proxima veremos los que son Listas, tuplas y diccionarios para luego entrar a ver sentencias condicionales y control de flujo.



compilar en linux:

cualquier distro de linux ya viene con el compilador de Python


1)cualquier editor de texto nos sirve para escribir en Python
2)todos los archivos con codigo Python debe tener la extension .py
3)para hacer que nuestro archivo sea ejecutable la primera linea de nuestro archivo debe ser #!/usr/bin/env python
4)damos permisos de ejecucion # sudo chmod 755 miprograma.py
5)lo ejecutamos ./miprograma.py
6)tambien de forma directa podemos hacer python miprograma.py y si es con python 3 pues solo hacemos python3 miprogra.py

Para nuestros windowseros desde aquí:
http://www.python.org/download/releases/3.0.1/


esta es la ultima version disponible desde el 13 de De Feb. Del 2009


write by Hackhan

No hay comentarios:

Publicar un comentario