2010-02-10 12 views
6

Al momento sto facendo questoCome inserire una tupla di interi dall'utente?

print 'Enter source' 
source = tuple(sys.stdin.readline()) 

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

ma sorgente e di destinazione diventare tuple stringa in questo caso con un \ n alla fine

risposta

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

Come dovrebbe l'utente dare un contributo ora. Ho provato 4,0 ... non funziona – Bruce

+0

ho l'output- Enter fonte 0,4 Scrivi un bersaglio 3,2 ('0', '4') ('3', '2') – Bruce

+0

Ah, ho modificato leggermente la mia risposta dopo. Confronta ciò che hai con ciò che ho scritto. –

1

Se si vuole ancora che l'utente venga richiesto due volte ecc

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)]) 

Questo è probabilmente meno divinatorio, ma più didattico ...

+0

origine e destinazione sono essi stessi tuple. Possiamo usare int() su tuple. – Bruce

+0

Siamo spiacenti, l'output desiderato non è chiaro. Ad ogni modo, string.strip() e int() dovrebbero consentire di ottenere esattamente ciò di cui hai bisogno, che si tratti di due tuple di un singolo intero ciascuna o di una tupla con i valori di origine e di destinazione. – mjv

5

scopre che int fa un buon lavoro di strippaggio spazio bianco, quindi non c'è alcuna necessità di utilizzare strip

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

Ad esempio:

>>> tuple(map(int,"3,4".split(','))) 
(3, 4) 
>>> tuple(map(int," 1 , 2 ".split(','))) 
(1, 2)