Saltar a contenido

Textos

Incorporar textos al programa

Volvamos a nuestro programa para medir un círculo:

CalculoCirculo.py
1
2
3
4
5
6
radio = 5

pi = 3.14159
perimetro = radio * pi * 2
area = pi * pow(radio, 2)
print (radio, perimetro, area)

La presentación de los resultados es un poco triste, ¿no?

5 31.4159 78.53975

Vamos a intentar mejorarlo:

CalculoCirculo2.py
1
2
3
4
5
6
7
8
radio = 5

pi = 3.14159
perimetro = radio * pi * 2
area = pi * pow(radio, 2)
print ("Radio:", radio)
print ("Perímetro:", perimetro)
print ("Área:", area)

Lo que, al ejecutarse, muestra:

Radio: 5
Perímetro: 31.4159
Área: 78.53975

En la sentencia:

print ("Radio:", radio)

le pasamos a print() dos argumentos, un texto, y el valor de una variable. Lo que se muestra es ambos objetos separados por un espacio en blanco y completados con un salto de línea:

Radio: 5

Ambos añadidos, el espacio en blanco y el salto de línea, los incluye la función print() de forma automática.

Delimitadores

¿Por que delimitamos el texto entre comillas?

print("Hola")

Las comillas no forman parte del texto, pero son necesarias porque, sin ellas, tendríamos un nombre de variable:

print(Hola)

... y al no existir la variable, obtendríamos un mensaje de error.

Las comillas se usan como delimitador en las sentencias del programa, para saber donde comienza y termina el texto.

¿Que pasa si necesitamos usar comillas como parte del texto? Supongamos que queremos mostrar la siguiente frase:

El rey Alfonso X "el sabio" nació en 1221.

No podemos escribir

print("El rey Alfonso X "el sabio" nació en 1221.")

porque el segundo carácter de comillas dejaría el texto en...

print("El rey Alfonso X "

y el ordenador estaría esperando un paréntesis de cierre, o una coma. Se produciría un error.

¿Como solucionarlo? Podemos usar apóstrofos delimitadores, en lugar de comillas:

print('El rey Alfonso X "el sabio" nació en 1221.')

y ahora si funciona. Python admite comillas o apóstrofos, indistintamente, pero el delimitador usado como inicio del texto ha de ser el mismo que el del final.

También podemos hacer lo inverso:

print("El rey Alfonso X 'el sabio' nació en 1221.")

¿Que utilizar como delimitadores? ¿Comillas o apóstrofos? El estándar oficial de Python parece ser los apóstrofos, pero muchos programadores prefieren las comillas, porque son de uso común cuando tienes que utilizar varios lenguajes.

Variables de texto

Podemos crear variables que almacenen textos:

CalculoCirculo3.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
radio = 5

pi = 3.14159
perimetro = radio * pi * 2
area = pi * pow(radio, 2)

texto1 ='Radio:'
texto2 ='Perímetro:'
texto3 ='Area:'

print (texto1, radio)
print (texto2, perimetro)
print (texto3, area)

Captura de datos de usuario

Ya hemos visto que la función input() espera a que el usuario introduzca un texto mediante el teclado y pulse Enter:

Saludo.py
print ('Introduzca su nombre:')
nombre = input()
print ('Hola,' , nombre) 

Lo que, al ejecutarse, muestra algo así como:

Introduzca su nombre: 
Juan
Hola, Juan

Lo tecleado por el usuario es devuelto por la función input() en forma de texto, que almacenamos en una variable.

Usar un prompt

Tras la frase "Introduzca su nombre" se genera un salto de línea que no es lo deseado. Quizás queremos que el cursor se quede tras los dos puntos:

Introduzca su nombre: Juan
Hola, Juan

Si pasamos un texto a la función input(), esta lo utilizará como prompt. La primera llamada a print() ya no es necesaria:

Saludo2.py
nombre = input('Introduzca su nombre: ')
print ('Hola,' , nombre) 

Pero ¡ojo!. La función print() muestra los argumentos que le pasemos insertando un espacio en blanco entre ellos. La función input() no añade un espacio tras el prompt, por lo que tenemos que escribirlo a mano, como parte del texto del prompt.