Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI MatePad 11.5''S, con il display PaperMatte si scrive come sulla carta
Recensione HUAWEI MatePad 11.5''S, con il display PaperMatte si scrive come sulla carta
HUAWEI MatePad 11,5''S è il nuovo tablet tuttofare di Huawei. Un device che adotta un display PaperMatte offrendo un'esperienza di scrittura e lettura simile alla carta, e vantando al contempo funzionalità pensate per la produttività come due accessori dedicati fra pennino e tastiera magnetica. Lo abbiamo provato e vi raccontiamo tutto quello che c'è da sapere nella nostra recensione completa.
Recensione HONOR 200 Pro: potrete fare ritratti da fotografo professionista! 
Recensione HONOR 200 Pro: potrete fare ritratti da fotografo professionista! 
HONOR sorprende il mercato dei medio gamma e lo fa con il nuovo HONOR 200 Pro, uno smartphone che sa fotografare ritratti professionali grazie ad un lavoro di Intelligenza Artificiale e di ottimizzazione realizzato in collaborazione con lo studio Harcourt di Parigi. Lo abbiamo messo in prova e questi sono i risultati.
I robot tagliaerba che nascono in Italia: visita nella sede (e nella fabbrica) di Stiga
I robot tagliaerba che nascono in Italia: visita nella sede (e nella fabbrica) di Stiga
Abbiamo avuto l'opportunità di visitare la sede di Stiga, azienda che a Castelfranco Veneto ha la sua sede operativa e produttiva, dove nascono tanti prodotti per la cura del verde, tra cui i nuovi robot autonomi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-03-2007, 17:25   #101
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12077
Quote:
Originariamente inviato da marco.r Guarda i messaggi
Nel caso di foo, il risultato delle tre chiamate a foo e' la stampa di [1],[2] e [3].
Nel caso di foo2, y viene inizializzata una unica volta nel corso della prima chiamata, e il valore permane. Quindi foo2 ha il risultato di stampare rispettivamente [1],[1,2] e [1,2,3]. Non so se in questo caso abbia senso parlare di variabile temporanea
Qua onestamente mi sfugge come fai a chiamare un metodo che accetta due parametri passandogliene solo 1
Spero che non sia davvero possibile fare una cosa del genere in python perchè altrimenti non mi spiego proprio come faccia l'interprete a scegliere quale signature della funzione utilizzare quando si lancia una funzione
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 21:36   #102
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
Quote:
Qua onestamente mi sfugge come fai a chiamare un metodo che accetta due parametri passandogliene solo 1
Spero che non sia davvero possibile fare una cosa del genere in python perchè altrimenti non mi spiego proprio come faccia l'interprete a scegliere quale signature della funzione utilizzare quando si lancia una funzione
???????

Quote:
Allora mi sfugge proprio il significato di quell'esempio che restituisce 0.0
sfugge anche a me

Quote:
Una variabile temporanea può essere ad esempio:

Codice:
private void something(String a) {
   String b = a;
   // do something
   String b = null;
   //do anything else
}
quindi x me b è una variabile locale temporanea perchè non esiste per tutta il ciclo di vita del metodo ma viene posta a null ad un certo punto (Ad esempio può essere una grossa cache che necessita di essere ripulita dal garbage collector perchè ad un certo punto diventa obsoleta).
La variabile a invece è una variabile locale, il che implica che è valida solo fintanto che ci si trova all'interno di quel metodo.
Estendendo un pò questo concetto si può dire che:
Codice:
int a = 1;
int b = 2;
int temp = a;
a = b;
b = temp;
temp ad esempio si può considerare una variabile temporanea dato che, all'interno di un contesto maggiore, essa è utile solo per un periodo limitato di tempo, terminato il quale può essere tranquillamente eliminata avendo concluso la sua funzione, ovvero quando il suo valore è stato assergnato a b.
Ma cmq io potrei anche avere variabili globali temporanee, xkè il concetto di "località" di una variabile e di "temporaneità" sono proprio due cose diverse.
Nel caso di cui sopra quella imho era un variabile locale.
Spero di aver spiegato il mio concetto di "temporaneità"
scusa, ma mi sono confuso solo di più.poi mi dite come dovrei fare ad essere ottimista se ancora a 19anni non capisco queste cose?e poi vorrei diventare chissà chi...sono sempre più convinto di essere un illuso....
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 22:45   #103
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi

E' implicito nella definizione di variabile locale il fatto che sia temporanea all'interno della funzione.
Basta che ti decidi , prima hai detto una cosa un po' diversa:
Quote:
non sono variabili temporanee.
Sono variabili locali della funzione.
Al che io ho specificato che sono due cose distinte e possibili contemporaneamente.
Anche se probabilmente abbiamo due idee diverse sul significato di "variabile temporanea"
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 22:53   #104
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
Qua onestamente mi sfugge come fai a chiamare un metodo che accetta due parametri passandogliene solo 1
Spero che non sia davvero possibile fare una cosa del genere in python perchè altrimenti non mi spiego proprio come faccia l'interprete a scegliere quale signature della funzione utilizzare quando si lancia una funzione
Scusa, ho fatto le cose un po' di corsa
nella definizione di foo2:
Codice:
def foo2(x,y=[]):
  y.append(x)
  print y
Il parametro y ha un valore di default, che viene utilizzato se non ne specifico altri.
Ad esempio foo2(5) equivale a foo2(5,[]), in quanto nella definizione di funzione ho scritto y=[]. Nulla mi vieta ovviamente di specificare esplicitamente il secondo parametro, ad esempio foo2(1,['x']).
La cosa da fare attenzione e' che il valore di default viene calcolato solo all'inizio e non ad ogni chiamata. Quindi quando scrivo
Codice:
foo2(1)
foo2(2)
alla prima chiamata y ha valore [], mentre alla seconda ha valore [1], ovvero il valore che aveva y alla fine della chiamata precedente. In pratica passo informazioni da una chiamata di funzione alla successiva, ed era il mio esempio di variabile locale, ma non temporanea.

In ogni caso l'inteprete non deve scegliere assolutamente la signature della funzione da utilizzare: in python non esiste l'overloading delle funzioni. Se definisco due funzioni con lo stesso nome (anche se con signature differente) la prima "sparisce" e rimane valida solo la seconda.
Se scrivo
Codice:
def f(x):
  return x

def f(x,y):
  return x+y

f(1)
l'interprete mi ritorna un errore in quanto quando chiamo f(1) l'unica definizione valida di f e' la seconda.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2007, 23:01   #105
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
oggi mi sono bloccato di nuovo.ecco dove:
PARAGRAFO 5.2
Codice:
def DistanzaTraDuePunti(x1, y1, x2, y2):
  dx = x2 - x1
  dy = y2 - y1
  DistQuadrata = dx**2 + dy**2
  print "DistQuadrata vale ", DistQuadrata
  return 0.0
perchè deve restituire 0.0 alla fine?
Infatti secondo me non dovrebbe.
O l'autore decide che deve tornare la distanza (oltre che stamparlo) e allora l'ultima riga dovrebbe essere return DistQuadrata (o meglio ancora la sua radice, ma questo e' un altro discorso), oppure stabilisce che invece che una funzione e' una procedura, e il risultato viene solo stampato; in quest'ultimo caso il return proprio non ci dovrebbe essere.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 08:58   #106
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
Quote:
Codice:
def DistanzaTraDuePunti(x1, y1, x2, y2):
  dx = x2 - x1
  dy = y2 - y1
  DistQuadrata = dx**2 + dy**2
  print "DistQuadrata vale ", DistQuadrata
  return 0.0
perchè deve restituire 0.0 alla fine?

Infatti secondo me non dovrebbe.
O l'autore decide che deve tornare la distanza (oltre che stamparlo) e allora l'ultima riga dovrebbe essere return DistQuadrata (o meglio ancora la sua radice, ma questo e' un altro discorso), oppure stabilisce che invece che una funzione e' una procedura, e il risultato viene solo stampato; in quest'ultimo caso il return proprio non ci dovrebbe essere.
io credo che non dovrebbe restituirlo in nessun cas.forse c'è stato un errore nella traduzione della guida?come il \linebreak di qualche paragrafo fa che non c'entrava niente e nella guida originale non c'era
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 12:04   #107
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
voi che dite?
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 21:28   #108
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 12:52   #109
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2007, 18:56   #110
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2007, 17:10   #111
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2007, 20:58   #112
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
e non ho capito nemmeno l'esempio di foo

Ultima modifica di Th3 Kn0wl3dg3 : 10-03-2007 alle 21:00.
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 12:01   #113
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
up
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2007, 19:54   #114
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
e non ho capito nemmeno l'esempio di foo
Non preoccuparti troppo, e' un caso abbastanza particolare che avevo usato per mostrare come in un caso (il primo) ad ogni chiamata y viene inizializzato a lla lista vuota, mentre nel secondo le modifiche alla lista vengono conservate tra una chiamata e l'altra.

Codice:
def foo(x,y):
  y = []
  y.append(x)
  print y

def foo2(x,y=[]):
  y.append(x)
  print y
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele

Ultima modifica di marco.r : 13-03-2007 alle 20:51.
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 00:21   #115
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 19:02   #116
Th3 Kn0wl3dg3
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 887
leggendo documenti su documenti credo che invece che python mi convenga iniziare da C o meglio ancora da java...voi che dite?
Th3 Kn0wl3dg3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 19:43   #117
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
Che problema c'è?
Quando uppi, quota il tuo problema, almeno è più semplice rispondere
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 19:43   #118
wisher
Senior Member
 
L'Avatar di wisher
 
Iscritto dal: Aug 2005
Messaggi: 2755
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
leggendo documenti su documenti credo che invece che python mi convenga iniziare da C o meglio ancora da java...voi che dite?
Dato che hai iniziato con python ti consiglio di continuare, è un ottimo linguaggio.
__________________
wisher è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 21:16   #119
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
Allora mi sono accorto che l'ultimo codice che ho postato non e' corretto, lo riscrivo qui per chiarezza, togliendo il secondo argomento a foo:
Codice:
def foo(x):
  y = []
  y.append(x)
  print y

def foo2(x,y=[]):
  y.append(x)
  print y
In foo, la lista vuota [] viene associata ad y ad ogni chiamata
per cui se io scrivo

Codice:
foo(1,1)
foo(2,2)
foo(3,3)
Ogni volta y riparte da [], per cui dopo che con y.append(x) ho aggiunto un elemento alla lista, ottengo sempre una lista di un elemento ( rispettivamente [1], [2] e [3] )
Con foo2 invece, y viene inizializzato ogni volta con la stessa lista, che pero' nel frattempo cresce.
Con
Codice:
foo2(1)
foo2(2)
foo2(3)
La prima volta che chiamo foo2, y viene inizializzato con la lista vuota [], a prescindere da qualsiasi valore io abbia passato come secondo argomento. A questa lista viene aggiunto l'elemento 1, e quindi la lista diventa [1]. Alla seconda chiamata, ad y viene associata la stessa lista di prima, [1], a cui viene aggiunto il valore 2, rendendola di due elementi, [1,2]. Similmente alla terza chiamata la lista e' [1,2] e diventa [1,2,3].
come dicevo sopra non crucciarti piu' di tanto per questo esempio, e' uno dei rari casi in cui python un po' strano.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2007, 21:18   #120
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Th3 Kn0wl3dg3 Guarda i messaggi
io credo che non dovrebbe restituirlo in nessun cas.forse c'è stato un errore nella traduzione della guida?come il \linebreak di qualche paragrafo fa che non c'entrava niente e nella guida originale non c'era
Potrebbe essere. Non avendo sottomano l'originale, e' difficile dire se l'autore voleva o meno ritornare il valore. Di sicuro non voleva tornare 0.0 (o perlomeno spero ).
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI MatePad 11.5''S, con il display PaperMatte si scrive come sulla carta Recensione HUAWEI MatePad 11.5''S, con il displa...
Recensione HONOR 200 Pro: potrete fare ritratti da fotografo professionista!  Recensione HONOR 200 Pro: potrete fare ritratti ...
I robot tagliaerba che nascono in Italia: visita nella sede (e nella fabbrica) di Stiga I robot tagliaerba che nascono in Italia: visita...
Nutanix .NEXT 2024: oltre l'iperconvergenza per rimpiazzare VMware Nutanix .NEXT 2024: oltre l'iperconvergenza per ...
OMEN Transcend Gaming Laptop 14: compatto, leggero e una potenza con compromessi OMEN Transcend Gaming Laptop 14: compatto, legge...
Ecco 2 ottimi computer portatili gaming,...
Torna a casa Recall: lo strano caso di M...
Perché Samsung Galaxy Watch 6 qua...
Intelligenza artificiale per tutti, ma n...
Amazon best seller top 5: idropulitrice ...
Garmin Instinct 2 crolla a 249€! Un bell...
Niente Call of Duty per la Nazionale? Ac...
Meta si ferma (per ora): non addestrer&a...
Notebook AMD Ryzen AI 300 e Intel Lunar ...
I nuovi notebook di fine 2024: cosa atte...
Prezzi bomba Amazfit: crolla a 89€ GTS 2...
Aspirano, lavano, 4000Pa: Laresar Evol 3...
Assassin's Creed e le polemiche su Yasuk...
Era finito, ora ancora 9 pezzi a 519€ pe...
La truffa email LIDL (ma ovviamente non ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www1v