miércoles, 29 de enero de 2014

Edición y ejecución de programas Python



Para escribir los programas se puede usar un editor como Geany que soporta codificación UTF-8, es liviano y multiplataforma.

Instalación y configuración del editor Geany


Si utiliza una distribución GNU/Linux como Ubuntu, para instalar el editor Geany utilizar el propio Centro de Software. Si tiene otra distribución o Windows puede descargar Geany desde la sección “Download” de la web de la aplicación www.geany.org y una vez descargada ejecutar el instalador.

Al iniciar Geany por primera vez se crea un documento vacío y sin nombre con la etiqueta “sin título”. Para realizar el primer programa escribir la siguiente línea:

print(“Python para impacientes”)

A continuación, guardamos el documento con el nombre “python-001.py” con la opción “Guardar” del menú “Archivo” o con la combinación de teclas [Ctrl+S].

Una vez almacenado el archivo, el editor Geany, por la extensión que hemos indicado en su nombre, identifica que el código introducido es Python y aplica colores a la sintaxis:

print(“Python para impacientes”)

En adelante, la característica de aplicar color a la sintaxis seguirá funcionando.

Antes de ejecutar el primer programa es necesario comprobar que el intérprete que  realizará dicha tarea es Python3 (y no una versión anterior). Para ello, accedemos a la opción “Establecer comandos de construcción” del menú “Construir” y verificamos que el comando del “Compilador” del apartado “Comandos de Python” y el comando “Ejecutar” del apartado “Ejecutar comandos” tengan los siguientes valores:



Comandos de Python:

Compilar: python3 -m py_compile "%f"

Ejecutar comandos:

Ejecutar: python3 "%f"


Si es preciso modificar y aceptar los cambios. Estos cambios serán permanentes, es decir, para nuevos programas se utilizará el intérprete de Python3.

Finalmente, ejecutamos el primer programa con la tecla [F5] o con la opción “Ejecutar” del menú “Construir”, o bien, con el botón “Ejecutar” de la barra de herramientas.

El resultado será mostrado en una ventana del emulador de Terminal:

Python para impacientes

Con la tecla [Enter] regresar al editor.

El siguiente proyecto “python-002.py” es algo más ambicioso porque incluye después de la línea de “for...” un bloque de líneas sangradas. Recomendamos teclear el código (no copiarlo) para comprobar como Geany sangra automáticamente cuando el guión lo requiere.

#!/usr/bin/python3
# -*- coding: utf-8 -*-
total=0
numeros=[0,1,2,3,4,5,6,7,8,9]
for numero in numeros: # recorre lista desde primer elemento a último
    total=total+numero
    print(numero, total)


Después de guardar el programa “python-002.py”, ejecutarlo con [F5]. El resultado será una lista de números desde el 0 al 9 y otra con la suma acumulada.

Por ahora no necesitamos saber más sobre Geany. En capítulos posteriores iremos aprendiendo más sobre su funcionamiento.

Convertir un programa en ejecutable


Incluir la ruta del intérprete Python en los programas:

En la primera línea de un programa debemos incluir la ruta donde está instalado el intérprete Python3 que deseamos invocar, como en el programa anterior. Ejemplos:

#!/usr/bin/python3
#!/usr/bin/env python3

La primera ruta es la habitual en un sistema GNU/Linux. La segunda ruta suele utilizarse en los programas que van a ejecutarse en distintos sistemas. Si tenemos instalado Python3 con el comando “which python3” podemos conocer su ruta.

Convertir en ejecutable y ejecutar un programa desde la línea de comandos:

$ chmod +x programa.py
$ ./programa.py

Añadir al PATH del sistema la ruta de un programa:

$ export PATH=$PATH:/home/carpetaprograma

Incluir la codificación del intérprete (encoding)


Para que el intérprete Python3 reconozca además de los caracteres comunes de los distintos alfabetos, aquellos que son característicos de cada idioma (como sucede con la ñ en el castellano/español, con las vocales acentuadas o la diéresis) tenemos que insertar en el comienzo de nuestros programas la siguiente línea:

# -*- coding: utf-8 -*-

Si en nuestros programas olvidamos especificar la codificación y escribimos, por ejemplo, vocales acentuadas o la ñ, el intérprete Python no será capaz de reconocer estos caracteres y producirá un error.

Incluir # Comentarios en el código 


Además de los usos que hemos visto con anterioridad de la almohadilla “#”, este carácter se utiliza específicamente para comentar líneas de programa:

if 'y' in 'Python': print('Python contiene a y') # El carácter 'y' está en 'Python'

Los comentarios que abarcan varias líneas podemos comenzarlos y terminarlos con tres comillas (simples o dobles):

“””
Comentario extenso
“””

Índice

7 comentarios:

Rafael P. dijo...

Hola.

Me instalé el Python 3.5 y el Geany y al poner lo que dices en "Establecer comandos de construcción" va todo bien, pero luego al ejecutar un programa me da el siguiente fallo: "'Python 3' is not recognized as an internal or external command, operable program or batch file"

Pherkad dijo...

Hola Rafael: en un sistema puedes tener al mismo tiempo varias versiones de Python instaladas, tanto de la línea 2.x como 3.x. Si en tu caso sólo tienes Python 3.5 entonces para llamar al intérprete utiliza "python" en vez de "python3".

En la línea de comandos ejecuta "python -V" y/o "python3 -V" para comprobar la versión del intérprete y si éste está accesible.

Si ninguno de los comandos ha dado resultado y el sistema es Windows añade a la variable de entorno "path" la ruta de instalación del intérprete.

Para más información: http://python-para-impacientes.blogspot.com.es/2014/01/primeros-pasos.html

No dudes en preguntar si sigue el problema. Saludos

Rafael P. dijo...

Lo comprobaré, ¡muchas gracias!

También he comprobado que comandos como 'xor' o "raw_print" no son reconocidos al ejecutar un programa. ¿Puede deberse a lo mismo?

Gracias y un saludo.

Pherkad dijo...

El operador binario "xor" en Python se expresa con el símbolo ^ (acento circunflejo). También, hay un módulo que se llama "operator" que incluye la función xor() que es equivalente:

a = 1
b = 2
print(a^b)

from operator import xor
print(xor(a,b))

El comando "raw_print" no existe en Python 3.x. Lo más parecido es "raw_input()" pero está disponible sólo en Python 2.x. Se utiliza para introducir datos en un programa. En python 3.x se usa input():

nombre = input("Introduce nombre:")

Saludos

Rafael P. dijo...

Eso, quería decir "raw_input", perdón.
¡Muchas gracias por tu ayuda, eres un máquina! :D

Julio Leon dijo...

Para usuarios de Windows como se hace la conversión de un programa hecho en PYQT5 con algunas ventanas? Extensión del archivo .pyw

Pherkad dijo...

Hola Julio,

No entiendo bien la pregunta. Si la aplicación está funcionando en un sistema distinto a Windows y pretendes que funcione en Windows sólo tendrías que renombrar el archivo .py como .pyw para que sea ejecutado por pythonw.exe en lugar de python.exe. Lógicamente, en el sistema tendría que estar instalado Python y todos los módulos que requiera la aplicación.

También, si la aplicación funciona en GNU/Linux conviene cambiar antes los caracteres de final de línea del código: LF x CR/LF (Win). Hay editores que lo hacen automáticamente y otros como Geany incluyen una opción para establecer el deseado.

Muchas gracias