PDA

Visualizza la versione completa : [python] prendere tre argomenti


cleaner
20-01-2008, 20:56
lista = int(raw_input("","",""))


devo far prendere al oggetto "lista" tre argomenti in un solo colpo, cioè 3numeri..però mi da errore dicendo che prende solo un argomento..esiste una soluzione?

cleaner
21-01-2008, 17:14
nine?! :zizi: sec me è una cavolata la risposta..

cleaner
22-01-2008, 18:12
:( come mai nessuno mi indirizza almeno...

GreyFox86
22-01-2008, 19:30
Se proprio vuoi usare solo una istruzione mi viene in mente qualcosa di simile...


>>> import re
>>> a,b,c = map(lambda x: eval(x), re.split("[\t ]+", raw_input()))
122 24 3
>>> a,b,c
(122, 24, 3)

..non vedo perchè non fare 3 input() però.

billiejoex
22-01-2008, 21:13
lista = int(raw_input("","",""))

devo far prendere al oggetto "lista" tre argomenti in un solo colpo, cioè 3numeri..però mi da errore dicendo che prende solo un argomento..esiste una soluzione?

Si, passargli un solo argomento (te lo dice pure).
Quello che ti ritorna raw_input() è una stringa.
Se sai che l'input è qualcosa del tipo "1 2 3" basta che usi split():

>>> "1 2 3".split()
['1', '2', '3']

cleaner
22-01-2008, 23:20
ah ecco..mi serviva ben una cosa del genere..ma quindi la funzione slipt() prende come oggetti tutti i numeri e/o parole tra cui c'è uno spazio..se ad esempio da tastiera digito:

cane ha 5 anni

viene cosi??:

lista = split(raw_input("Dammi i tre numeri"))


e gli oggetti saranno:

cane, ha, 5,anni ??????

billiejoex
22-01-2008, 23:29
Il metodo split() è un metodo di stringa. Per sapere quello che fa usa help:



>>> help(''.split)
Help on built-in function split:

split(...)
S.split([sep [,maxsplit]]) -> list of strings

Return a list of the words in the string S, using sep as the
delimiter string. If maxsplit is given, at most maxsplit
splits are done. If sep is not specified or is None, any
whitespace string is a separator.

>>>


Se non capisci capisci quello che ti dice help usa l'interprete per sperimentare:



>>> "123456".split("123")
['', '456']
>>> "123|456".split("|")
['123', '456']
>>> "123hey456".split("hey")
['123', '456']



se ad esempio da tastiera digito:

cane ha 5 anni

viene cosi??:

lista = split(raw_input("Dammi i tre numeri"))


e gli oggetti saranno:

cane, ha, 5,anni ??????
No. Ma non fai prima a provare tu stesso?
Inoltre questi sono concetti davvero basilari.
Se ti leggi un tutorial per noob dall'inizio alla fine prima di mettere mano al codice questi problemi li risolvi tu stesso.

Loading