2010-02-10 19 views

Odpowiedz

11
tuple(int(x.strip()) for x in raw_input().split(',')) 
+0

Jak użytkownik powinien dać wejście teraz. Próbowałem 4,0 ... to nie działa – Bruce

+0

otrzymuję output- Enter source 0,4 Enter kierować 3,2 ('0', '4') ('3', '2') – Bruce

+0

Ah, zmodyfikowałem swoją odpowiedź nieco później. Porównaj to, co masz z tym, co napisałem. –

1

Jeśli nadal chcesz, aby użytkownik został poproszony dwa razy itd.

print 'Enter source' 
source = sys.stdin.readline().strip() #strip removes the \n 

print 'Enter target' 
target = sys.stdin.readline().strip() 

myTuple = tuple([int(source), int(target)]) 

jest to prawdopodobnie mniej pythonic, ale bardziej dydaktyczny ...

+0

źródło i cel to same krotki. Możemy użyć int() na krotkach. – Bruce

+0

Niestety, pożądane wyniki są niejasne. W każdym razie, string.strip() i int() powinny pozwolić ci uzyskać dokładnie to, czego potrzebujesz, czy to dwie krotki jednej liczby całkowitej, czy też jedna krotka z wartościami źródłowymi i docelowymi. – mjv

5

Okazuje się, że int robi bardzo dobrą robotę usuwania spacji, więc nie ma potrzeby korzystania strip

tuple(map(int,raw_input().split(','))) 

Na przykład:

>>> tuple(map(int,"3,4".split(','))) 
(3, 4) 
>>> tuple(map(int," 1 , 2 ".split(','))) 
(1, 2) 
Powiązane problemy