Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
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: 12093
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


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
Questi nanorod potrebbero cambiare il fu...
realme C71: l’entry-level con display 12...
Destiny 2 conquista Steam: la nuova espa...
Da fan di Hitler a ragazzina sexy: ecco ...
La Stark Varg è un successo senza...
Addio Wi-Fi ballerino in vacanza: da Kee...
Epic ne umilia altri due: scuse pubblich...
Insta360 Connect: la nuova era delle vid...
Kyndryl annuncia il Microsoft Accelerati...
Blitz mondiale dell'FBI: sequestrati div...
La Difesa USA ha annunciato nuove collab...
Non solo NVIDIA, luce verde anche per AM...
Recensione Xiaomi Smart Band 10: cambia ...
In Italia abbiamo un problema con l'IA: ...
OnePlus e l’intelligenza artificiale: ec...
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: 18:01.


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