[Risolto] python: problema return

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
finz
Prode Principiante
Messaggi: 12
Iscrizione: lunedì 14 marzo 2011, 15:54

[Risolto] python: problema return

Messaggio da finz »

ciao ragazzi,
sto seguendo la guida Pensare da informatico, Imparare con Python per imparare un po' a programmare.

Premetto che ho cercato su google e sul forum ma non ho trovato niente che mi aiutasse.
ho provato a scivere una funzione di questo tipo:

def ValoreAssoluto(x):
 if x < 0:
   return -x
 else:
   return x

sembra tutto ok ma quando vado a chiamare la funzione non ritorna alcun risultato. ho provato inserendo print al posto di return e funziona.
ho provato anche con altre funzioni tipo:

def AreaDelCerchio(raggio):
 return math.pi * Raggio**2

ma anche in questo caso non succede niente. so che puo sembrare una domanda stupida ma sono nuovo di python e fatico a capirci dentro qualcosa.
grazie in anticipo :)
Ultima modifica di finz il lunedì 14 marzo 2011, 16:56, modificato 1 volta in totale.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: python: problema return

Messaggio da Zoff »

puoi spiegare come fai a controllare il valore restituito?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
finz
Prode Principiante
Messaggi: 12
Iscrizione: lunedì 14 marzo 2011, 15:54

Re: python: problema return

Messaggio da finz »

non dovrebbe stamparmi a video il risultato? almeno sulla guida c'è scritto cosi.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: python: problema return

Messaggio da Zoff »

In teoria sì, a me infatti funziona.

Puoi postare l'intero listato con cui lo provi?
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
finz
Prode Principiante
Messaggi: 12
Iscrizione: lunedì 14 marzo 2011, 15:54

Re: python: problema return

Messaggio da finz »

cosa intendi per listato?

comunque adesso ho provato a scrivere questo:

def aggiungouno (n) :
    return (n+1)
aggiungouno (1)

la risposta del terminale è questa:

enrico@enrico-pc:~$ python test.py
enrico@enrico-pc:~$
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: python: problema return

Messaggio da Zoff »

la stampa a video senza print vale solo se sei dentro all'interprete python...
Se esegui uno scrpt devi mettere davanti print:

Codice: Seleziona tutto

def aggiungouno (n) :
    return (n+1)
print aggiungouno (1)
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
finz
Prode Principiante
Messaggi: 12
Iscrizione: lunedì 14 marzo 2011, 15:54

Re: python: problema return

Messaggio da finz »

grazie dell'illuminazione :) adesso funziona.
metto [risolto]

altra domanda stupida: se sono dentro al terminale python mi fa scrivere solo una riga alla volta, non permettendomi di creare funzioni complesse. è normale?
per ovviare c'è un altro modo oltre a quello di aprire uno script?
l3on4rdo

Re: python: problema return

Messaggio da l3on4rdo »

le funzioni complesse le puoi creare anche da dentro l'interprete dei comandi.
se scrivi per esempio riga per riga (andando a capo e rispettando l'indentazione) la tua funzione sul valore assoluto, vedrai che la creerai anche nel interprete python.
l'unica differenza che mi viene in mente è che se scrivi uno script, puoi lasciare delle righe vuote all'interno della definizione della funzione, mentre se scrivi nell'interprete, non puoi lasciare righe vuote, perché vengono interpretate differentemente.

occhio, poi, che return e print sono due cose differenti.
per stampare a video, da uno script, devi usare print e non return.
ma se vuoi che una funzione ti "ritorni" una variabile, devi comunque usare return, anche nello script.

ciao
Ultima modifica di l3on4rdo il lunedì 14 marzo 2011, 16:35, modificato 1 volta in totale.
finz
Prode Principiante
Messaggi: 12
Iscrizione: lunedì 14 marzo 2011, 15:54

Re: python: problema return

Messaggio da finz »

riga per riga?
se faccio invio per andare alla riga successiva mi esegue quello che ho scritto nella prima riga, non permettendomi di continuare.
per imparare e meglio usare uno script o direttamente l'interprete?

scusate se rompo ma ho bisogno di capire.
l3on4rdo

Re: [risolto] python: problema return

Messaggio da l3on4rdo »

sto dicendo questo :)

Codice: Seleziona tutto

l3on4rdo@l3on4rdo-laptop:~$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def ValoreAssoluto(x):
...   if x < 0:
...     return -x
...   else:
...     return x
... 
>>> ValoreAssoluto(4)
4
>>> ValoreAssoluto(-4)
4
>>> 
è piu' facile di quanto pensi.
finz
Prode Principiante
Messaggi: 12
Iscrizione: lunedì 14 marzo 2011, 15:54

Re: [risolto] python: problema return

Messaggio da finz »

>>> def ValoreAssoluto(x):
...    if x", line 6
    ValoreAssoluto(-4)
                ^
SyntaxError: invalid syntax

perche non mi rimette >>> al posto di ... quando ho finto di scrivere la funzione e voglio chiamarla?
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [risolto] python: problema return

Messaggio da Zoff »

devi mettere una riga vuota premendo invio
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
l3on4rdo

Re: [risolto] python: problema return

Messaggio da l3on4rdo »

Zoff ha scritto: devi mettere una riga vuota premendo invio
come infatti ti ho scritto sopra, le righe vuote vengono interpretate differentemente negli script e nell'interprete dei comandi.
nello script vengono "saltate" se incluse all'interno della funzione.
nell'interprete dei comandi, la riga vuote viene interpretata come fine della funzione.

ciao
finz
Prode Principiante
Messaggi: 12
Iscrizione: lunedì 14 marzo 2011, 15:54

Re: [risolto] python: problema return

Messaggio da finz »

grazie della disponibilita e dell'aiuto, stavo dando ti testa  >:(
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti