Un primer programa en Python

Python es el lenguaje de programación “oficial” de la Raspberry Pi. Es un lenguaje que nació a finales de la década de los 80 de la mano de Guido Van Rossum (Haarlem, Países Bajos, 1956).

A lo largo de sus muchos años de historia ha ido evolucionando con una idea fundamental que es la sencillez a la hora de aprender a usarlo. Es decir, el lenguaje es muy completo y permite hacer muchísimas cosas, pero la idea general es que “debería haber sólo una forma, obvia, de hacer las cosas”.

Al final esto significa que, en general, Python no llama a engaños y trata de conseguir que fallemos pocas veces cuando intentamos hacer algo. Vamos a probarlo y a poner las manos en unos primeros conceptos muy sencillos para empezar a pensar en programar.

Abre el menú y, dentro de “Programación” haz click en “Python 3”. Verás lo siguiente:

Lo que ves ahí es un entorno de desarrollo de Python llamado IDLE, que permite programar de forma interactiva. Es decir, se introducen instrucciones y en el mismo momento el entorno nos contesta con el resultado. Vamos a probarlo escribiendo lo siguiente sin pulsar la tecla intro (↵) todavía:

print("Hola, mundo")

Mientras lo haces, verás que el programa empieza a colorear lo que escribes y superpone cierta información de referencia. No te preocupes ahora de lo que significa, simplemente fíjate que escribe “print” y ciertos mensajes acerca de la misma:

Cuando termines pulsa la tecla de Intro (↵). Verás que el resultado es el texto que iba entre comillas y entre paréntesis, de esta forma:

¿Qué es lo que ha ocurrido ahí? En una sola línea de texto hemos pedido a Python que escriba por la salida estándar una cadena de caracteres "Hola, Mundo", usando para ello la función print. Esto tan sencillo introduce un montón de conceptos.

Función

Una función es una secuencia de instrucciones que se puede llamar, o invocar, dentro de un programa utilizando su nombre, en este caso print (en inglés “imprimir”) y unos argumentos entre paréntesis (en este caso la cadena "Hola, mundo").

Para quien la usa, que somos nosotros en el ejemplo, el conjunto de instrucciones la forman está oculto. Este conjunto de instrucciones se llama implementación. Más adelante en el blog veremos cómo definir nuestras propias funciones. Así, una función consta de:

  • Un nombre: print  
  • Un conjunto de argumentos que pueden ser obligatorios u opcionales y que van entre paréntesis. En este caso es una cadena de caracteres: "Hola, Mundo"
  • Un resultado, que en el ejemplo no entra en juego (es opcional). En otros lenguajes de programación, a las funciones que no devuelven un resultado les llaman procedimientos.
  • Una implementación que está oculta para el programador que llama, o invoca, la función.

Caracteres y cadenas de caracteres

Una cadena de caracteres: es una secuencia de caracteres ordenados que se representa entrecomillado. Es decir, las comillas de "Hola, Mundo" no son parte de la cadena de caracteres, sino su delimitador. Es decir, la cadena de caracteres propiamente dicha es Hola, Mundo.

Un caracter es, en un ordenador, un símbolo que se puede obtener pulsando una o varias teclas, y que representa información. Aunque es intuitiva, esta definición no es del todo correcta porque existen caracteres no imprimibles. Es decir, invisibles. ¿Qué sentido tiene esto? Algunos aparatos como las pantallas y los teclados los usan para comunicar cosas como, por ejemplo, el avance de línea. Cuando pulsas la tecla intro (↵) no ves un caracter, ves su efecto. Es un caracter no imprimible que hace que, en la pantalla, el cursor avance una línea y se sitúe al principio de la siguiente (esto último se llama retorno de carro y viene de las máquinas de escribir). Sí, se obtiene pulsando una tecla. Sí, representa información (avance de línea y retorno de carro). Pero, ¿es un símbolo?

Yendo un poquito más allá: variables y constantes

Para terminar el artículo vamos a complicar un poquito el programa para introducir el concepto de variable. Hemos visto que la línea anterior es poco flexible, puesto que tal y como está escrita sólo va a poder escribir "Hola, Mundo" y nada más.

print("Hola, Mundo")

Lo que vamos a hacer es definir una variable a la que asociaremos una cadena de texto y haremos unos pocos experimentos más. Escribe lo siguiente:

saludo = "Hola,"
nombre = "PItando"
print(saludo, nombre)

Si no has cometido ninguna errata, deberías ver lo siguiente:

Lo que acabas de hacer es definir dos elementos especiales, llamados variables. Como su nombre indica, estos elementos pueden variar. Así, cuando escribes "Hola, Mundo" estás escribiendo una cadena de caracteres constante, mientras que con una variable puedes pensar que estás indicando a la función una caja que  en el ejemplo contiene una cadena de caracteres, y que tiene una etiqueta con un nombre (saludo).

Prueba ahora a escribir lo siguiente, a continuación:

nombre = "Pepito de los palotes"
print (saludo, nombre)

Lo que verás ahora será que, mientras la llamada a la función es la misma print(saludo, nombre) que antes, el resultado ha variado ya que el valor de una de las variables es distinto.

Las variables son muy importantes, juegan un papel fundamental en la programación. Veremos muchas más cosas pronto, en otros artículos.

Conclusiones

En esta entrada hemos aprendido bastantes cosas a través de un programa en Python sencillísimo: qué son las funciones, sus argumentos, las cadenas de caracteres, y las variables y las constantes. Tenemos ya una serie de conocimientos que nos permitirán experimentar un poquito y abordar entradas más completas, tanto centradas en Python como en otros lenguajes ya que todos éstos son conceptos comunes dentro de la programación.

Para investigar tú

Haz las siguientes pruebas y trata de entender cada una:

print(nombre.upper())
nombre
print("¡", nombre, nombre.upper(), saludo, nombre, "!")

En dos o tres días actualizaré esta entrada con una explicación.

Actualizado

Más adelante entraré en la teoría que hay detrás, hoy voy a entrar en qué hemos hecho con cada línea de texto.

Con nombre.upper() hemos obtenido una versión en mayúsculas del contenido de la variable nombre, pero sin modificarla. En este sentido, upper es una abreviatura de uppercase, que significa “mayúsculas”. Al introducirlo en una llamada al ya conocido print, lo imprimimos por la pantalla. Como hemos obtenido una copia en mayúsculas, al escribir a continuación nombre, su contenido sigue en minúsculas.

Con la sentencia print siguiente, lo que estamos haciendo es imprimir varias variables y cadenas constantes, una detrás de otra. Esto explica aquél cuadro amarillo que se superponía al escribir en IDLE:

Es una ayuda de la forma en la que pdemos invocar dicha función. Veamos:

  • value indica cualquier valor, ya sea con una constante o una variable. El hecho de usar la palabra inglesa valor indica que si es una variable se escribirá su valor, no su nombre.
  • …, quiere decir que podemos escribir tantos valores como queramos.
  • sep=’ ‘ indica que cada variable se separará por un espacio, y ese es el valor por defecto. Ahora probamos a cambiarlo, ya verás.
  • end=’n’ indica el terminador de la cadena. n es un caracter especial que significa “retorno de carro y avance de línea”, y es equivalente a presionar intro (↵).
  • file=sys.stdout indica por dónde se imprime la cadenasys.stdout es la salida estándar y viene a significar “el mismo medio por donde nos han llegado las órdenes”. En este caso, IDLE. De momento lo vamos a dejar ahí, cuando empecemos a escribir ficheros usaremos ese parámetro.

Fijaos ahora:

print (apellidos, nombre, sep=',', end='*')

Esto tiene como efecto el cambio del separador entre valores desde el espacio a la coma, y un delimitador de fin que será visible: el asterisco.

Captura 20150628 - 9

La utilidad que tiene esto reside en el volcado de datos a ficheros para guardar el estado de un programa, por ejemplo, de forma que podamos localizar valores y segmentos usando los separadores de valor y los indicadores de fin.

Lo usaremos mucho, seguro 😉

4 comentarios en “Un primer programa en Python

  1. Llevo tiempo escuchandote y al fin he sacado tiempo. Me he propuesto empezar con python y la mejor forma de hacerlo es por el principio. Un saludo y gracias por tu esfuerzo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *