Ir al contenido principal

Python: Entrada y salida de datos estándar...

Continuamos nuestro recorrido guiado por el mundo de Python. En esta ocasión realizaremos dos paradas, la primera será en la función raw_input( ) con la que pediremos datos de entrada al usuario y la segunda será en la función print que ya usamos un par de veces en las entradas anteriores pero que aquí veremos con más detalle.

Entrada de datos con raw_input: 


La función raw_input nos permite de manera muy sencilla el ingreso de datos por parte del usuario. Veamos la estructura de la función:


Como vemos, la función raw_input recibe como parámetro un string (cadena de caracteres) que será el mensaje que aparecerá en pantalla antes de pedir el dato al usuario, esta función devuelve una cadena con lo ingresado por el usuario hasta que presiona la tecla enter, por lo que asignamos eso a una variable para poder utilizarlo.

Veamos un ejemplo en el intérprete:


Como vemos al usar el raw_input se muestra en la pantalla el mensaje que elegimos y luego nos permitirá escribir el dato en cuestión que luego podremos utilizar ya que lo guardamos en una variable, num en este caso.

Pero si vemos de qué tipo es num, nos dirá que es un string ya que contiene una cadena como podemos ver a continuación en el type(num):


Entonces para poder trabajar con el int guardado usamos la función int( ) que nos devuelve 13 en este ejemplo. Lo mismo se puede hacer para todos los tipos de datos sólo que podrían surgir errores si el usuario ingresa datos incorrectos y trabajamos con ellos, para esos casos veremos manejo de errores en próximas entradas.

Entrada de datos con input:

También existe la función input para pedir datos al usuario, su sintaxis es la misma que la de raw_input, sólo que input pasa el valor directamente mientras que, como vimos, raw_input devuelve siempre un string.

Para leer un string con input el usuario debería ingresarlo entre comillas.

Veamos el ejemplo anterior con esta función:


Salida de datos con print:


Para mostrar datos por pantalla utilizaremos la función print que ya vimos en algunos ejemplos de entradas anteriores. La sintaxis básica de print en caso de querer mostrar un mensaje es:


Donde dentro del mensaje podemos utilizar los caracteres especiales que ya vimos para strings en entradas anteriores.

Mientras que si queremos mostrar el valor de una variable tenemos:


Una forma de colocar varias cadenas o intercalarlas con variables es la de colocarlas luego del print separadas por comas, con lo que la función agrega un espacio intermedio entre ellas. Veamos un ejemplo:


Donde en este caso tenemos dos variables que son strings, pero podríamos tener variables de otro tipo, o utilizar mensajes directamente dentro del print como vemos a continuación:


Otra forma es hacer uso de las posibilidades de formateo que nos permite Python. Esto se realiza mediante los especificadores de conversión que veremos a continuación:


Y los utilizaremos para especificar el formato que tendrá cada parte dentro del print.

Veamos el ejemplo anterior realizado de esta manera:


Como vemos, colocamos los especificadores de conversión en el lugar donde van las variables y al final de la cadena colocamos % y especificamos, en orden, a qué variables se refieren esos especificadores.

También podríamos realizar el mismo ejemplo colocando incluso el texto adicional a las variables mediante especificadores:






Hasta aquí llegamos en esta entrada, nos despedimos por ahora pero continúen a la espera del próximo recorrido por las profundidades de Python.


Comentarios

Entradas populares de este blog

C: Conversiones de tipo (casting) en C...

El casting o simplemente cast  nos permite hacer una conversión explícita de un tipo de dato a otro, a criterio del programador siempre y cuando estos tipos sean compatibles. Este cast se realiza a través de un operador de conversión de tipos (type casting operator) y es un recurso a tener en cuenta ya que hay situaciones en que nos puede resultar de gran utilidad. Hacer uso de un cast es tan sencillo como poner (tipo de dato)  delante de la expresión o variable a convertir. Veamos un ejemplo: Declaramos una variable de tipo int con un identificador tan creativo como "a" y le realizamos diferentes cast a a para mostrarlo como si fuera un float, un double y un char en un printf. Lo que obtendríamos en pantalla sería lo siguiente: Donde tenemos el valor de nuestro a, a convertido en float y double (mostrándolo con 3 cifras decimales) y a convertido en char. Si vemos este último caso, al hacer la conversión de "a" a char toma a como el código ascii de

C: Ejemplos: Congruencia de Zeller (nivel básico) ...

La Congruencia de Zeller es un algoritmo que se atribuye al matemático alemán Julius Christian Johannes Zeller que vivió en el siglo XIX. Este algoritmo nos permite determinar el día de la semana que le corresponde a una fecha determinada del calendario Gregoriano. La fórmula que nosotros usaremos (con algunas modificaciones respecto de la original para poder usarla en  informática) es la siguiente: Donde h es el día de la semana (entre 0 y 6), J es año/100 (la centuria) y K es año mod 100 (el año de la centuria). Y hay que tener en cuenta que los meses de enero y febrero cuentan como el mes 13 y 14 del año anterior. Ahora que tenemos la fórmula, programemos el algoritmo en C mediante el uso de una función: Analicemos el código paso a paso: Tenemos en cuenta el caso de enero y febrero: Dijimos que estos meses corresponden a los meses 13 y 14 del año anterior por lo que los asignamos como corresponde (mes + 12 , que dará 13 para enero y 14 para febrero) y le rest

Algoritmos: Resolución de problemas y refinamientos en pseudocódigo...

En otras entradas, vimos las partes que debe tener nuestro algoritmo en pseudocódigo y las estructuras que utilizaremos para resolverlo. Ahora llega el turno de implementar todo en conjunto para dar origen a nuestra creación. Pero ¿cómo resolvemos un problema así? Para hacerlo, utilizaremos lo que llamamos refinamientos sucesivos. Este concepto consiste en dividir el problema en subproblemas más pequeños y a estos, a su vez, en otros más pequeños; y así sucesivamente hasta que la solución de los últimos sea trivial, sencillo de resolver. Luego usaremos todas las soluciones obtenidas para armar la solución de nuestro problema mayor. Este principio, tiene base en parte de la técnica divide and conquer (dependiendo de la traducción: "divide y vencerás") que es una de las muchas técnicas de resolución de algoritmos existentes. Como vemos, al dividir el problema en otros más pequeños y más fáciles de resolver, podemos pasar de un problema complicado a uno cuya solución es much