Algoritmos de Programación con Python

1.3. Cómo darle instrucciones a la máquina usando Python

Nota Python fue creado a finales de los años 80, por un programador holandés llamado Guido van Rossum, quien sigue siendo aún hoy el líder del desarrollo del lenguaje.

La versión 2.0, lanzada en 2000, fue un paso muy importante para el lenguaje ya que era mucho más madura, incluyendo un recolector de basura. La versión 2.2, lanzada en diciembre de 2001, fue también un hito importante ya que mejoró la orientación a objetos. La última versión de esta línea es la 2.7 que fue lanzada en noviembre de 2010 y aún está vigente.

En diciembre de 2008, se lanzó la versión 3.0, cuya versión actual es la 3.4.1, de mayo de 2014. Sin embargo, debido a que estas versiones introducen importantes cambios y no son totalmente compatibles con las versiones anteriores, todavía no se utiliza extensamente.

El lenguaje Python nos provee de un intérprete, es decir un programa que interpreta las órdenes que le damos a medida que las escribimos. Para orientarnos, el intérprete presenta una línea de comandos (los comandos son las órdenes) que identifica al comienzo con los símbolos >>>, y que llamaremos prompt. En esta línea, a continuación del prompt podemos escribir diferentes órdenes.

Algunas órdenes sencillas, por ejemplo, permiten utilizar la línea de comandos como una calculadora simple con números enteros. Para esto escribimos la expresión que queremos resolver en el prompt y presionamos la tecla <ENTER>. El intérprete de Python "responde" el resultado de la operación en la línea siguiente, sin prompt, y luego nos presenta nuevamente el cursor para escribir la siguiente orden.

>>> 2+3
5
>>>

Python permite utilizar las operaciones +, -, *, / (división entera), y ** (potenciación). La sintaxis es la convencional (valores intercalados con operaciones), y se pueden usar paréntesis para modificar el orden de asociación natural de las operaciones (potenciación, producto/división, suma/resta).

>>> 5*7
35

>>> 2+3*7
23

>>> (2+3)*7
35

>>> 10/5
2

>>> 5**2
25

Otra orden sencilla de Python permite indicarle al intérprete que escriba o "imprima" por pantalla una palabra o frase, que llamaremos cadena de texto.

>>> print 'Hola'
Hola

>>> print 'Como estan?'
Como estan?

>>> print "Bienvenidos y bienvenidas a este curso!"
Bienvenidos y bienvenidas a este curso!

print es una instrucción de Python: aquélla que le indica a la máquina que debe imprimir un texto en pantalla, que deberá ser ingresado entre comillas simples (') o dobles (") indistintamente. Ya veremos con qué otras instrucciones viene equipado Python.

Pero ya dijimos que como programadores debíamos ser capaces de escribir nuevas instrucciones para la computadora. Los programas de correo electrónico, navegación por Internet, chat, juegos, escritura de textos o predicción de las condiciones meteorológicas de los próximos días no son más que grandes instrucciones que se le dan a la máquina, escritas por uno o muchos programadores.

Llamaremos función a una instrucción escrita por un programador.

Si queremos escribir una función (que llamaremos holaMar) que escribe en una línea el texto "Hola Marta!"" y en la línea siguiente el texto "Estoy programando en Python.", lo que debemos hacer es ingresar el siguiente conjunto de líneas en Python:

>>> def holaMar():
        print "Hola Marta!"
        print "Estoy programando en Python."
>>>

def holaMar(): le indica a Python que estamos escribiendo una instrucción cuyo nombre es holaMar. ¿Por qué se ponen esos dos paréntesis? Lo veremos dentro de unos párrafos. La sangría con la que se escriben las dos instrucciones print le indican a Python que estamos escribiendo el cuerpo (es decir las instrucciones que la componen) de la función en cuestión. Las dos teclas <ENTER> que tecleamos después de ingresar el texto "Estoy programando en Python." le indican a Python que se acabó el cuerpo de la función (y por eso aparece nuevamente el cursor).

Si ahora queremos que la máquina ejecute la instrucción holaMar, debemos escribir holaMar() a continuación del cursor de Python:

>>> holaMar()
Hola Marta!
Estoy programando en Python.
>>>

Se dice que estamos invocando a la función holaMar. Al invocar una función, se ejecutan las instrucciones que habíamos escrito en su cuerpo, una a continuación de la otra.

Nuestro amigo Pablo seguramente se pondrá celoso porque escribimos una función que la saluda a Marta, y nos pedirá que escribamos una función que lo salude a él. Y así procederemos entonces:

>>> def holaPab():
        print "Hola Pablo!"
        print "Estoy programando en Python."

Pero, si para cada amigo que quiere que lo saludemos debemos que escribir una función distinta, parecería que la computadora no es una gran solución. A continuación veremos, sin embargo, que podemos llegar a escribir una única función que se personalice en cada invocación, para saludar a quien querramos. Para eso están precisamente los paréntesis.

Las funciones tienen partes variables, llamadas parámetros, que se ponen dentro de los paréntesis. Escribimos por ejemplo una función hola general que nos sirva para saludar a cualquiera, de la siguiente manera:

>>> def hola(alguien):
    print "Hola", alguien,"!"
    print "Estoy programando en Python."

En este caso, alguien es un parámetro cuyo valor será reemplazado por un texto (nombre en este caso) en cada invocación. Por ejemplo, podemos invocarla dos veces, para saludar a Ana y a Juan:

>>> hola("Ana")
Hola Ana !
Estoy programando en Python.
>>> hola("Juan")
Hola Juan !
Estoy programando en Python.
>>>

Problema 1.3.1. Escribir un programa que calcule el cuadrado de un número dado.

Solución. Para resolver este problema, se combinan los recursos utilizados hasta ahora:

def cuad1(num):
    print num*num

Para invocarlo, deberemos hacer:

>>> cuad1(5)
25
>>>

Problema 1.3.2. Permitir que el usuario ingrese el valor a elevar al cuadrado.

Solución. Para esto utilizaremos una nueva función input que permite leer valores ingresados por el usuario:

def cuad2():
    n = input("Ingrese un número: ")
    cuad1(n)

La ejecución del programa será la siguiente:

>>> cuad2()
Ingrese un numero: 5
25
>>>

Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.