sábado, 29 de diciembre de 2012

Tutorial scripting python 3.3 desde Unix


Comenzaremos los tutoriales para programar en python versión 3.3,como saben si son seguidores del sitio hace un tiempo realice algunos tutoriales sobre python,estos los cancele por algunas cuestiones y me disculpo por ello.

En esta ocasión daremos un repaso rápido a lo que ya habíamos visto en python 2.7 así que si no tienes ni idea de programación estos tutoriales te servirán para adentrarte en el mundo de programación y python en si,ya que los haré los mas explicados posible y he habilitado todos los comentarios para que puedan comentar con la cuenta que tengan y sin cuenta,por si tienen algún aporte o duda.

Como dije daremos un repaso a lo que ya habíamos visto en python 2.7,como si no hubiese otros tutoriales de python.

Hola Mundo

Explico que es hola mundo,hola mundo es el primer programa/script que creamos en nuestro lenguaje de programación en lo que consiste este grandioso programa es en imprimir hola mundo en la pc,en algunos casos desde la consola y en otros desde una ventana.

En este caso como es introducción,lo haremos desde la consola usando scripting

Uno, ver que versión de de python tenemos

python -V

Ahora teniendo la versión 3.x comenzamos

Nota: Yo tengo una distro RR y trae python 3.x por defecto,ubuntu 12.10 por ejemplo trae python 2.7 y 3.x


Primero que nada debemos ver donde esta el interprete(python)

En terminal

which python

La salida sera algo como esto

/usr/bin/python
Si python -V no muestra 3.x,puedes buscar python 3 así

which python3
Y la salida sera algo como esto:


/usr/bin/python3

Usa esta ruta para lo de bajo.

Si aun así no sale python 3.x es porque no lo tienes instalado

En ubuntu 12.10:






En Archlinux :




Tomaremos la salida y le agregaremos #! y env,que quede así

#!/usr/bin/env python
O
#!/usr/bin/env python3 

Con #! llamamos el interprete(python)

Y con env ?

Si vamos a programar en serio,vamos a usar nuestro script en distintos sistemas(en este caso tipo Unix) y no todos tienen la misma (como yo le digo arquitectura[no me refiero a x64,x86,etc],me refiero a en que rama(carpeta) guarda el interprete ) ruta del interprete

Por ejemplo en FreeBSD

/usr/local/bin/python

Y con env busca python

Ya que env es un ejecutable y con añadir python después de el estamos diciendo que busque python

Es lo mismo que escribir en la consola

env python

Y también podemos buscar env(este ejecutable si siempre en /usr/bin)

which env

Así que siempre que inicies un script usa #!/usr/bin/env python

En este caso de preferencia

#!/usr/bin/env python3
Por si no es la versión que tienes por defecto

Ahora otra practica que se usa es asignar la codificación del script en mi caso no lo uso,pero si se necesita investigar al respecto.

Ahora si Hola Mundo:

Lo que acabamos de hacer es para hacer uso de scripting,ya que python tiene una consola en la cual podemos usar los comandos que veremos solo escribiendo python en la terminal,la cual no veremos,ya que estos tutoriales están dedicados al scripting.

Como mencione Hola mundo se basa en imprimir texto en la pc,en este caso la consola y el comando que se usa en python para hacer esto es print:

En python 3.3 debemos encerrar entre () lo que queremos imprimir y el texto "":

print ("Hola Mundo desde Python 3.3!!!")

Script :

#!/usr/bin/env python

print ("Hola MUndo desde Python 3.3!!!")

Recuerden que si python 3.x no esta por defecto en /usr/bin/python hagan asi el script:


#!/usr/bin/env python3

print ("Hola MUndo desde Python 3.3!!!")



Los scripts son linea de ordenes en un archivo con extensión .py,asi que para usar ese gran programa solo escribanlo en un archivo de texto y guárdenlo con extensión .py

Hay dos formas de ejecutar:

1.Si no tiene el hashbang/shebang se puede usar así:

python script.py

2.Si tiene hashbang se ejecuta de esta manera

Le damos permisos de ejecucion:

chmod +x script.py

Y lo ejecutamos asi:

./script.py

3.En mi caso yo lo ejecuto asi

python script.py
o

python3 script.py

Aunque tenga hashbang,esto para no perder tiempo en darle permisos de ejecución y dárselos hasta que este listo para usarse y compartirse.

Así que lo ejecutamos

python holamundo.py

Variables :

Las variables son fundamentales en los lenguajes de programación son asignaciones de valores que varían estos valores pueden ser números letras u otras cosas,las variables se definen con el símbolo = y con una palabra clave la cual no puede ser un comando del sistema:

En el caso de texto,llamado cadena o string debe ir encerrado en "" o '' para que se defina como cadena

Vamos a definir una variable llamada cadena con el valor de string "Mi cadena":

cadena = "Mi cadena"

En el caso de números sea enteros o de punto no debe ir en modo string(encerrados en "") debe ir libres de esta característica:

Vamos a definir dos variables de números una llamada numero y otra punto con valores 10 y 10.5:

numero = 10

punto = 10.5

Eso es todo lo que necesitamos saber sobre variables(de momento).

Ahora llamarlas,las variables son leídas por el interprete,pero no serán mostradas/ejecutadas hasta que sean llamadas de alguna manera, en este caso solo imprimiremos su valor en la consola:

#!/usr/bin/env python

cadena = "Mi cadena"
numero = 10
punto = 10.5

# < esto es un comentario,no lo toma en cuenta python
# Imprimiremos {

print ("Cadena: ",cadena)
print ("Numero: ",numero)
print ("Punto: ",punto)

# } Fin del script


Al ejecutar vean el resultado.

Yo defino/uso print de esta manera

#!/usr/bin/env python

cadena = "Mi cadena"
numero = 10
punto = 10.5

print ("Cadena: ",cadena,"\nNumero: ",numero,"\nPunto: ",punto)

Y obtenemos el mismo resultado,por que el símbolo \n quiere decir nueva linea.

Lo que también queda aclarar es las comas (,) esta coma usada de esta manera quiere decir también,por ejemplo en español diría:

imprime ("Cadena: " también variable cadena también "en nuevalinea Numero : también etc)

Vamos a hacer unas operaciones aritméticas:

No es difícil hacer esto,solo necesitamos los símbolos que se usan y no va a mas de lo que usábamos en la secundaria o tal vez primaria:

- resta

+ suma

% resto

/ division

* multimplicacion

// cociente

** potencia

Ahora vamos a ver un ejemplo

En un script escribimos:

print ( 1 + 1 )

Y imprime dos.

Igual en las otras operaciones,ahora vamos a definir el valor de nuestra operación desde la entrada del teclado con el comando input()

#!/usr/bin/env python

print ("Vamos a sumar dos numeros,definelos tu mismo")

numero1 = input("Escribe el numero uno: ")
numero2 = input("Escribe el numero dos: ")

# Podemos hacerlo de dos formas
# Forma uno desde variable {

suma = numero1 + numero2

# Lo llamamos

print (suma)

# } Fin de forma 1

# Forma 2 {

print (numero1 + numero2)

# } Fin forma2

Si ejecutamos el valor sera los dos juntos,por ejemplo si sumamos 10 + 10 el resultado sera 1010,esto se debe a que el valor que tomo fue desde input y este lo tomo como string, lo que debemos hacer es convertirlo a integer/entero como mencione (numero)

Pasando la variable a integer con el comando int desde otra variable:

#!/usr/bin/env python

print ("Vamos a sumar dos numeros,definelos tu mismo")

numero1 = input("Escribe el numero uno: ")
numero2 = input("Escribe el numero dos: ")

nume1 = int(numero1) # Pasamos el valor a entero
nume2 = int(numero2) # Las dos variables

# Podemos hacerlo de dos formas
# Forma uno desde variable {

suma = nume1 + nume2 # Ahora la operacion se hace sobre las nuevas variables

# Lo llamamos

print (suma)

# } Fin de forma 1

# Forma 2 {

print (nume1 + nume2) # Tambien aqui se realiza la operacion sobre las nuevas variables

# } Fin forma2

Ahora una nota importante,yo recomiendo que hagan esto desde un editor potente como kate,gedit o vim,si pueden usar un IDE también es recomendable,pero esto es mas que nada por que resalta la sintasix con colores y hace mas fácil el entendimiento, así que si pueden instalen,vim,kate,gedit:




Esto no es tan fácil ya que los programadores,coders,desarrolladores tenemos que ser analistas previsores,pensar en todo lo que puede ser un posible error o tan solo posible entrada,por ejemplo si nuestro numero es de punto (floating point) de punto flotante,debemos convertirlo a este formato:

Ahora con el operador float

#!/usr/bin/env python

print ("Vamos a sumar dos punto flotante,definelos tu mismo")

numero1 = input("Escribe el numero uno: ")
numero2 = input("Escribe el numero dos: ")

nume1 = float(numero1) # Pasamos el valor a flotante
nume2 = float(numero2) # Las dos variables

# Podemos hacerlo de dos formas
# Forma uno desde variable {

suma = nume1 + nume2 # Ahora la operacion se hace sobre las nuevas variables

# Lo llamamos

print (suma)

# } Fin de forma 1

# Forma 2 {

print (nume1 + nume2) # Tambien aqui se realiza la operacion sobre las nuevas variables

# } Fin forma2

Bien como vemos es sencillo,ahora vamos a ver estructuras selectivas

Estructuras selectivas

Las estructuras selectivas son caminos por donde ir,por ejemplo :

No vean el código,solo copien,ejecuten y vean lo que hace:

Desde ahora uso pastebin ya que necesita ir identado y puede que el formato de blogger haga que pierda el estilo de identacion(explico abajo)

Enlace

Aqui nos sirve este script ^ de dos formas:

1.Para ver como funcionan las estructuras selectivas,vimos que compara si el valor es igual a algunos de los que nos da y elige un camino por donde ir(Explicado mejor mas abajo)

2.Para ver como debe ir identado el código python ya que python es muy especial y ademas de que se ve mejor el código identado, lo usa para saber que usar,ya que no cierra su ciclo selectivo,por ejemplo Perl:

if (condicion) { # < Abre ciclo
# comandos
} # < Cierra ciclo

Y en python es asi

if condicion:
comandos

En lo personal me gusta mas como maneja los datos Perl :\

Ya que no requiere identacion y incluso podemos entrar a la competencia de codigo ofuscado,como por ejemplo el perfecto rectangulo de Just Another Hacker Unix Perl

Enlace

Que funcina O_O

Pero bueno vamos a seguir

En las estructuras selectivas hay que tener claro los comprobadores,porque se parecen a otros operadores, hay que tener muy claro esto:

= asignación

== comprobacion

Muy en claro,al igual que los demás:

< menor que  
<= menor o igual que  
> mayor que  
>= mayor o igual que  
== igual  
!= no igual
is objecto identificado  
is not  no identificado

Todo esto ^ lo podemos usar en las estructuras selectivas:

Pero antes si no conocen ningún lenguaje de programación,existen tres estructuras

En python son:

if,elif y else

Por ejemplo

if es si # Valor verdadero

elif es si,sobre otra condición # Valor verdadero

else es no sobre las otras comparaciones # Valor falso

Por ejemplo veamos este script:

Enlace

Como vemos podemos comparar muchas veces usando elif,pero solo una usando else,lo cual es bueno porque es algo que no es,ya que en español seria:

si es (if)

si es este, en vez (elif)

si no es ninguno (else)

Eso es todo por ahora,se me fue volando el tiempo y no vimos todo lo que vimos en tres tutoriales python 2.7,sera en otra ocasión :D

Eso es todo por ahora :D

10 comentarios:

  1. Interesantes estos tutoriales!

    Ojala y pueda seguir observando mas de estos con continuidad!

    A aprender Python ;)

    Saludos!

    ResponderBorrar
    Respuestas
    1. Bienvenido @Elynx :D

      Si, estoy preparando mas tutoriales sobre python 3.3, así que pronto mas.

      Y si a aprender Python :D

      Saludos

      Borrar
  2. Está bien el tutorial. Un día de estos tengo que meterle caña a python, que no me acuerdo de nada. :)

    ¡Un saludo!

    ResponderBorrar
    Respuestas
    1. Bienvenido a Tiempo de Tux @hexborg :D

      Gracias por el comentario.

      Como dije arriba pronto mas tutoriales de python,ya que es muy buen lenguaje y muy usado en Linux.

      De momento arreglare algunos errores ortográficos que se me pasaron en esta entrada :\

      Saludos

      Borrar
  3. Analistas previsores Damian ¿(^-^)?

    Si uso un string en la variable numero1,2 da error al pasarlo a int

    Usa:

    numero1 = int(input("Escribe el numero uno: "))
    numero2 = int(input("Escribe el numero dos: "))
    print (numero1 + numero2)


    (^▼^) (^▼^) (^▼^) (^▼^) (^▼^)

    ResponderBorrar
    Respuestas
    1. Me decepcionas da,eso que mencionas esta bien,pero solo haces que muestre mas rápido el error XD

      Esto es lo que se deb hacer :

      numero1 = input("Escribe el numero uno: ")
      numero2 = input("Escribe el numero dos: ")

      try:
      int(numero1), int(numero2)
      except:
      print ('Numeros!!!')
      exit()

      print (int(numero1) + int(numero2))

      Bueno siempre me dices que mientras menos lineas mejor,a menos que a eso te refieras :D

      Borrar
    2. Se comió el código identado blogger :\

      Este es el ejemplo

      http://pastebin.com/YB2h70Yu

      Borrar
    3. Si hasta en errores debes usar pocas lineas (^-^)

      Debes hablar de tipos de datos y comprobadores de valores <(^-^<)


      Borrar
  4. Disculpa compa, una vez ejecutamos estos scripts, para poder verlos en pausa en el sistema no seria necesario que en los ejemplos que mencionas le coloquemos: raw_input() para que haga una pausa y podamos ver el script?,.ya que la consola solo parpadea y a simple vista sabemos que se ejecuto pero no sabemos si ha de ser efectivo.

    Quizas por ser nuevo en esto desconozca del tema, espero en caso de estar errado me corrijas!

    Gracias!

    ResponderBorrar
    Respuestas
    1. No,lo que mencionas pasa al ejecutarlos desde un administrador de archivos(nautilus,dolphin,etc) con clic derecho ejecutar,y estos tutoriales son sobre Unix,osea el uso total de la terminal, así que no ejecutes los scripts así, ejecútalos desde la terminal,por ejemplo:

      Este es el Hola mundo totalmente Unixero para Python:

      Abre una terminal y escribe

      echo -e '#!/usr/bin/env python\nprint ("Hola Mundo!!!")' > holamundo.py

      y

      Ejecutas así

      python holamundo.py

      Lo que veras es el programa

      Imagen:

      https://lh3.googleusercontent.com/-6Tqo7mSg94I/UPLy3bOsWeI/AAAAAAAAHL4/dwd0Nyd1yjA/s641/Captura+de+pantalla+de+2013-01-13+11%3A44%3A01.png

      Pero si lo ejecutas desde un administrador de archivos no veras nada,amenos de que añadas raw_input(),pero en este caso de python 3.3 ya se escribe input() solamente.

      Los scripts que se ejecutan desde un administrador de archivos son aquellos con interfaz gráfica,no es nada recomendable ejecutar estos ejemplos así,ya que es scripting shell,desde la terminal/shell/consola.

      De hecho recomiendo el uso de un editor de consola como vim/nano/joe para mas rápido

      Saludos :D

      Borrar

Los comentarios serán revisados antes de ser publicados.