2010-11-12 16 views
7

Chcę odczytać dwie wartości wejściowe. Pierwsza wartość powinna być liczbą całkowitą, a druga wartość powinna być zmienną.Jak odczytać dwa wejścia oddzielone spacją w jednym wierszu?

Widziałem Read two variables in a single line with Python, ale ma to zastosowanie tylko wtedy, gdy obie wartości są tego samego typu. Czy mam jakiś inny sposób?

Przykładowe wejście, pierwsze to int, a drugie to zmiennoprzecinkowe. Wejścia powinny być w jednej linii:

20 150.50 

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

jestem bardzo nowy w Pythonie.

+2

Odpowiedź na pytanie jest powiązany z odpowiedzią najbardziej potrzebne. Co próbujesz? – SingleNegationElimination

+0

moje pierwsze wejście powinno być intergerem, a drugie powinno być floatem. –

+0

@TokenMacPamiętaj, że błąd jest mój. Powinienem przeczytać pierwszy dokument :( –

Odpowiedz

16

Jak to:

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 

Nie można tego zrobić w ciągu jednego-liner (a przynajmniej nie bez pewnych Super duper dodatkowych umiejętności hackz0r - lub średnikami), ale pyton nie jest wykonany z jednego -liners.

4

One liner :)

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

Proszę wyjaśnić każdy element linii – abhishah901

3

prostsze liniowej (ale mniej bezpieczne):

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

map(str,input().split()) to jest, jak to zrobić.

1

Jeżeli wejście jest oddzielona od przestrzeni ""

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

Jeżeli wejście jest oddzielony przecinkami ''

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

W Pythonie 2.7, to wykorzystać

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

A = int(A) 

B = float(B) 

print(A) 

print(B) 

Wyjście

34 6,9

6,9

Powiązane problemy