21 Stimmen

Wie werden zwei durch Leerzeichen getrennte Eingaben in einer einzigen Zeile gelesen?

Ich möchte zwei Eingabewerte lesen. Der erste Wert soll ein Integer-Wert und der zweite Wert ein Float-Wert sein.

Ich sah Zwei Variablen in einer einzigen Zeile mit Python lesen aber es gilt nur, wenn beide Werte vom gleichen Typ sind. Gibt es eine andere Möglichkeit?

Beispiel für eine Eingabe, die erste ist int und die zweite ist float. Die Eingaben sollten in einer einzigen Zeile stehen:

20 150.50

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

Ich bin sehr neu in Python.

31voto

Gabi Purcaru Punkte 29912

Zum Beispiel so:

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

Sie können dies nicht in einem Einzeiler tun (oder zumindest nicht ohne einige super duper extra hackz0r Fähigkeiten - oder Semikolons), aber Python ist nicht für Einzeiler gemacht.

4voto

dietbuddha Punkte 8078

Einzeiler :)

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

4voto

Phoris Punkte 41

Einfacher One-Liner (aber weniger sicher):

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

3voto

RITIK DWIVEDI Punkte 31

Wenn die Eingabe durch Leerzeichen getrennt ist " "

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

Wenn die Eingabe durch ein Komma ',' getrennt ist

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

3voto

Jasmohan Punkte 227

In Python 2.7 verwende ich dies

A,B = raw_input().split(" ")
A = int(A)
B = float(B)
print(A)
print(B)

Ausgabe:

34 6.9

34

6.9

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X