Manual Python
Enviado por zairfdzrios • 10 de Septiembre de 2012 • 1.754 Palabras (8 Páginas) • 622 Visitas
MANUAL EN PYTHON
“CLASES DE USO COMUN”
ADMINISTRACION DE PROYECTOS
GUSTAVO ROSANO HINOJOSA
ZAIR FERNANDEZ RIOS
TIC 51
ENTRADAS Y SALIDAS
Nuestros programas serían de muy poca utilidad si no fueran capaces de interaccionar con el usuario.
En esta lección, además de describir más detalladamente del uso de print para mostrar mensajes al usuario, aprenderemos a utilizar las funciones input y raw_input para pedir información, así como los argumentos de línea de comandos y, por último, la entrada/salida de ficheros.
ENTRADA ESTÁNDAR
La forma más sencilla de obtener información por parte del usuario es mediante la función raw_input. Esta función toma como parámetro una cadena a usar como prompt (es decir, como texto a mostrar al usuario pidiendo la entrada) y devuelve una cadena con los caracteres introducidos por el usuario hasta que pulsó la tecla Enter. Veamos un pequeño ejemplo:
nombre = raw_input("Como te llamas? ")
print "Encantado, " + nombre
Si necesitáramos un entero como entrada en lugar de una cadena, por ejemplo, podríamos utilizar el constructor de int para convertir la cadena a entero, aunque sería conveniente tener en cuenta que puede lanzarse una excepción si lo que introduce el usuario no es un número.
try:
edad = raw_input("Cuantos anyos tienes? ")
dias = int(edad) * 365
print "Has vivido " + str(dias) + " dias"
except ValueError:
print "Eso no es un numero"
La función input es un poco más complicada. Lo que hace esta función es utilizar raw_input para leer una cadena de la entrada estándar, y después pasa a evaluarla como si de código Python se tratara; por lo tanto input debería tratarse con sumo cuidado.
PARÁMETROS DE LÍNEA DE COMANDO
Además del uso de input y raw_input el programador Python cuenta con otros métodos para obtener datos del usuario. Uno de ellos es el uso de parámetros a la hora de llamar al programa en la línea de comandos. Por ejemplo:
python editor.py hola.txt
En este caso hola.txt sería el parámetro, al que se puede acceder a través de la lista sys.argv, aunque, como es de suponer, antes de poder utilizar dicha variable debemos importar el módulo sys. sys.argv[0] contiene siempre el nombre del programa tal como lo ha ejecutado el usuario, sys.argv[1], si existe, sería el primer parámetro; sys.argv[2] el segundo, y así sucesivamente.
import sys
if(len(sys.argv) > 1):
print "Abriendo " + sys.argv[1]
else:
print "Debes indicar el nombre del archivo"
Existen módulos, como optparse, que facilitan el trabajo con los argumentos de la línea de comandos, pero explicar su uso queda fuera del objetivo de esta lección.
SALIDA ESTÁNDAR
La forma más sencilla de mostrar algo en la salida estándar es mediante el uso de la sentencia print, como hemos visto multitud de veces en ejemplos anteriores. En su forma más básica a la palabra clave print le sigue una cadena, que se mostrará en la salida estándar al ejecutarse el estamento.
>>> print “Hola mundo” Hola mundo
Después de imprimir la cadena pasada como parámetro el puntero se sitúa en la siguiente línea de la pantalla, por lo que el print de Python funciona igual que el println de Java.
En algunas funciones equivalentes de otros lenguajes de programación es necesario añadir un carácter de nueva línea para indicar explícitamente que queremos pasar a la siguiente línea. Este es el caso de la función printf de C o la propia función print de Java.
Ya explicamos el uso de estos caracteres especiales en su día durante la explicación del tipo cadena de la lección Python: Tipos básicos. La siguiente sentencia, por ejemplo, imprimiría la palabra “Hola”, seguida de un renglón vacío (dos caracteres de nueva línea, ‘\n’), y a continuación la palabra “mundo” indentada (un carácter tabulador, ‘\t’).
print "Hola\n\n\tmundo"
Para que la siguiente impresión se realizara en la misma línea tendríamos que colocar una coma al final de la sentencia. Comparemos el resultado de este código:
>>> for i in range(3): >>> …print i
0 1 2
Con el de este otro, en el que no utiliza una coma al final de la sentencia:
>>> for i in range(3): >>> …print i 0 1 2
Este mecanismo de colocar una coma al final de la sentencia funciona debido a que es el símbolo que se utiliza para separar cadenas que queramos imprimir en la misma línea.
>>> print “Hola”
“mundo” Hola mundo
Esto se diferencia del uso del operador ‘+’ para concatenar las cadenas en que al utilizar las comas print introduce automáticamente un espacio para separar cada una de las cadenas. Este no es el caso al utilizar el operador +, ya que lo que le llega a print es un solo argumento: una cadena ya concatenada.
>>> print “Hola” + “mundo” Holamundo
Además, al utilizar el operador + tendríamos que convertir antes cada argumento en una cadena de no serlo ya, ya que no es posible concatenar cadenas y otros tipos, mientras que al usar el primer método no es necesaria la conversión.
>>> print “Cuesta”
3
“euros” Cuesta 3 euros >>> print “Cuesta” + 3 + “euros” <type ‘exceptions.TypeError’>: cannot concatenate ‘str’ and ‘int’ objects
La sentencia print, o más bien las cadenas que imprime, permiten también utilizar técnicas avanzadas de formateo, de forma similar al sprintf de C. Veamos un ejemplo bastante simple:
print "Hola %s" % "mundo"
print "%s %s" % ("Hola", "mundo")
Lo que hace la primera línea es introducir los valores a la derecha del símbolo ‘%’ (la cadena “mundo”) en las posiciones indicadas por los especificadores de conversión de la cadena
...