Read multiple numbers on the same line with raw_input

6

I need to write a program that reads values and then uses them to calculate areas of different geometric shapes. My problem is: how to enter data on the same line? Example: 3.0 4.0 2.0  followed by calculation on the next line

How to write the code so that Python reads on the same line? Is it even with raw_input?

How do I do:

a = float(raw_input())
b = float(raw_input())
c = float(raw_input()) 
triangulo = (a * c) / 2
print "TRIANGULO:", ("%.3f" % triangulo)
circulo = (3.14159 * c**2 )
print "CIRCULO:", ("%.3f" % circulo)
trapezio = ((a + b) * c) / 2
print "TRAPEZIO:", ("%.3f" % trapezio)
quadrado = b * b
print "QUADRADO:", ("%.3f" % quadrado)
retangulo = a * b
print "RETANGULO:", ("%.3f" % retangulo)
    
asked by anonymous 26.02.2016 / 11:56

1 answer

6

You can use raw_input() (in Python 2) or input() (in Python 3) and separate the data through split . That is, it would look like this:

entrada = raw_input("Digite três números") # lendo os números
# quebrando a entrada em tokens separados por espaço (poderia ser outro separador)
numerosComoString = entrada.split(" ")
# criando uma nova lista com a conversão para float de cada número
numeros = [float(numero) for numero in numerosComoString] 

# atribuindo cada posição da lista a uma variável
a, b, c = numeros
triangulo = (a * c) / 2
print "TRIANGULO:", ("%.3f" % triangulo)
circulo = (3.14159 * c**2 )
print "CIRCULO:", ("%.3f" % circulo)
trapezio = ((a + b) * c) / 2
print "TRAPEZIO:", ("%.3f" % trapezio)
quadrado = b * b
print "QUADRADO:", ("%.3f" % quadrado)
retangulo = a * b

print "RETANGULO:", ("%.3f" % retangulo)

In Python 3, just replace raw_input with input .

Note that no error handling is being done for badly formatted entries. In a code for actual use, this would be essential.

    
26.02.2016 / 12:46