Modo interactivo
Python incluye una consola que nos permitirá evaluar y ejecutar sentencias de forma individual, en modo interactivo, sin necesidad de escribir código en un fichero, lo que nos permitirá probar pequeñas partes de código antes de incluirlas definitivamente en un programa. Python suele venir ya instalado en muchas distribuciones Linux, como en Ubuntu, normalmente instalado en el directorio /usr/bin, y referenciado por la variable de entorno PATH, con el fin de poder ejecutar directamente la consola y el intérprete desde un terminal Linux (para más información sobre la instalación y configuración de Python, consultar la URL: http://docs.python.org/using/index.html).
Para acceder a la consola/intérprete, ejecutar desde un terminal:
$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>>
[GCC 4.4.3] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>>
El prompt está representado por >>>, indicando que acepta comandos por parte del usuario para su
ejecución. Una vez introducido ha de pulsarse la tecla Enter (ó Intro) para su ejecución. Para comenzar,
vamos a evaluar directamente valores, ya sean números o literales de texto:
>>> 2+2
4
>>> (2+2)*5
20
>>> "3 elevado a 3 son: ", 3**3
('3 elevado a 3 son: ', 27)
4
>>> (2+2)*5
20
>>> "3 elevado a 3 son: ", 3**3
('3 elevado a 3 son: ', 27)
La consola visualiza el resultado debajo de cada prompt. Lo último evalúa dos expresiones, separadas por una coma: un literal (entre comillas dobles) , y un número (resultado de un cálculo). Para los literales, da igual especificar comillas simples que dobles, con tal de que las comillas iniciales y las finales sean iguales.
Vamos a probar la última operación utilizando la sentencia print (imprimir):
>>> print '3 elevado a 3 son: ', 3**3
3 elevado a 3 son: 27
Ahora la consola está ejecutando una sentencia que visualiza el resultado de las dos expresiones como una única salida en pantalla.
Variables y números
Los valores pueden ser almacenados en variables, las cuales son nombres simbólicos que facilitan al humano recordarlos mejor que su valor. Básicamente, en la ejecución del código se sustituye el nombre por su valor.
A diferencia de otros lenguajes de programación, Python no necesita declarar el tipo del valor a almacenar en una variable. Esto es lo que se denomina tipado fuerte o dinámico:
>>> valor1 = 34
>>> valor2 = 3.67
>>> resultado = valor1*valor2
>>> print "Resultado = ",resultado
Resultado = 124.78
>>> resultado = "Hola, Python"
>>> print "Resultado = ", resultado
Resultado = Hola, Python
Se pueden reasignar diferentes tipos de valor a una misma variable, teniendo presente siempre el último.
El siguiente ejemplo muestra el uso de varias funciones específicas para números:
>>> float(valor1) # valor en coma flotante (decimal)
34.0
>>> valor1.real # valor real (de un entero)
34
>>> valor2.real # valor real (de un decimal)
3.67
>>> int(valor2) # valor entero (sin decimal)
3
>>> abs(valor2) # valor absoluto
3.67
>>> round(valor2,1) # redondeo a un digito decimal
3.7
Tras cada sentencia aparece un literal precedido del carácter '#', que indica que a partir de ahí es un comentario y no se ejecutará. Los comentarios añaden claridad al código, pero no hacen nada.
Python permite definir y asignar varias variables con varios valores en la misma línea:
>>> a = b = c = 5 # Asigna el mismo valor
>>> print ("a=",a," - b=",b," - c=",c)
a= 5 - b= 5 - c= 5
>>> a,b,c=1,'Pedro',3.5 # Asigna distintos valores
>>> print "a=",a," - b=",b," - c=",c
a= 1 - b= Pedro - c= 3.5
Literales de texto
Los literales o cadenas de texto poseen unas características especiales que son convenientes conocer. Por ejemplo, si el propio literal contiene comillas, para que el intérprete entienda que éstas son caracteres y no la apertura o cierre de un literal, ha de iniciarse con unas determinadas comillas, y utilizar dentro el otro tipo de comillas (por ejemplo, iniciar con comillas dobles y dentro utilizar comillas simples, o viceversa).
>>> print 'Dije: "Sí"', " - y él dijo: 'No'"
Dije: "Sí" - y él dijo: 'No'
En el caso de iniciar un literal y necesitar el carácter de las comillas en su interior, se pueden utilizar las secuencias de caracteres \" y \' para comillas dobles y comillas simples respectivamente.
>>> print 'Don\'t cry.', "Dije: \"Oh, baby\""
Don't cry. Dije: "Oh, baby"
Los literales son caracteres que se visualizan secuencialmente, pero a veces será necesario cambiar de línea o agregar una sangría, lo que se consigue con las secuencias de escape \n y \t, respectivamente.
>>> print "linea\t1\n\tlinea 2"
linea 1
linea 2
Si es necesario un texto largo con varias líneas, sangrías, espaciados, etc., no es necesario escribir secuencias especiales, si no escribir el texto tal cual visualizar encerrado entre comillas triples:
>>> texto = """El teniente se acercó al sargento:
... - "Déme las novedades" - ordenó en tono amenazante.
... El sargento titubeó, y respondió:
... - "No hay novedades. Lo siento, mi teniente" """
>>> print texto
El teniente se acercó al sargento:
- "Déme las novedades" - ordenó en tono amenazante.
El sargento titubeó, y respondió:
– "No hay novedades. Lo siento, mi teniente"
Cuando el comando aún no ha terminado, la consola de Python muestra unos puntos suspensivos en el prompt, indicando que sigamos escribiendo hasta que finalice. En el ejemplo se inició el literal de una variable con comillas triples, y no terminrá hasta que se cierre con sus respectivas comillas triples.
Una operación muy común con literales es la concatenación, la cual permite unir dos cadenas o literales, bien mediante la definición de dos literales separados por un espacio, o bien sumando ambos literales.
>>> print "Arroyo","molinos" # 2 literales
Arroyo molinos
>>> print "Arroyo" "molinos" # Concatenación
Arroyomolinos
>>> print "Arroyo"+"molinos" # Concatenación
Arroyomolinos
Una concatenación especial se consigue con el operador asterisco (“*”), el cual repite n veces un literal o una lista (ésta se verá más adelante).
>>> print "ja"*10
jajajajajajajajajaja
Entregas:
- Introducción
- Conceptos básicos
- Listas
- Estructuras de datos
- Estructuras de control
- Funciones
- Módulos y paquetes
- Orientación a objetos
- Control de excepciones
Enlaces de interés: