2010-11-12 39 views
7

Quiero leer dos valores de entrada. El primer valor debe ser un entero y el segundo valor debe ser un flotante.¿Cómo se leen dos entradas separadas por espacio en una sola línea?

Vi Read two variables in a single line with Python, pero se aplica solo si ambos valores son del mismo tipo. ¿Tengo alguna otra forma?

Ejemplo de entrada, primero es int y el segundo es float. Las entradas deben estar en una sola línea:

20 150.50 

http://www.codechef.com/problems/HS08TEST/

que soy muy nuevo en Python.

+2

La respuesta a la pregunta vinculada es la mayor parte de la respuesta que necesita. ¿Qué has intentado? – SingleNegationElimination

+0

mi primera entrada debe ser un interger y la segunda debe ser un flotador. –

+0

@TokenMac El error de Guy es mío. Debería haber leído primero el documento :( –

Respuesta

16

De esta manera:

In [20]: a,b = raw_input().split() 
12 12.2 

In [21]: a = int(a) 
Out[21]: 12 

In [22]: b = float(b) 
Out[22]: 12.2 

No se puede hacer esto en una sola línea (o al menos no sin algunas habilidades súper duper hackz0r extra - o punto y coma), pero Python no está hecho para una -liners.

4

Un forro :)

>>> [f(i) for f,i in zip((int, float), raw_input().split())] 
1 1.2 
[1, 1.2] 
+0

Explique cada componente de la línea – abhishah901

3

más simple forro (pero menos seguro):

map(eval, raw_input().split()) 
-2

map(str,input().split()) que es cómo lo hace.

1

Si la entrada está separado por espacios ""

a,b,c = raw_input().split(" ")

Si la entrada está separada por coma ''

a,b,c = raw_input().split(",") 
0

En Python 2.7, utilizo este

A,B = raw_input().split(" ") 

A = int(A) 

B = float(B) 

print(A) 

print(B) 

Salida

34 6,9

6,9

Cuestiones relacionadas