Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione ASUS ROG Cetra TWS SpeedNova: le migliori nella loro fascia, ma lo stelo va accorciato
Recensione ASUS ROG Cetra TWS SpeedNova: le migliori nella loro fascia, ma lo stelo va accorciato
Nelle ultime settimane abbiamo avuto l'opportunità di mettere sotto torchio le ASUS ROG Cetra TWS SpeedNova. Seppur classificati come "da gaming", gli auricolari vanno ben oltre quelle che sono le esigenze dei videogiocatori proponendosi come una soluzione polifunzionale capace di fornire un suono eccezionale in ogni circostanza, dalla musica ai contenuti multimediali, passando ovviamente per i videogiochi con i quali è possibile ottenere una latenza praticamente assente.
Google Pixel 8a: può diventare un vero best buy? La recensione
Google Pixel 8a: può diventare un vero best buy? La recensione
Google ha capito che la serie "a" dei suoi Pixel piace agli utenti per vari motivi e per questo ha deciso di proporre sul mercato questo nuovo Pixel 8a che ha il sapore di uno smartphone migliorato rispetto alla passata generazione, con processore top di gamma ma ad un prezzo forse un po’ esagerato al momento.  
MSI Vector 16 HX A13V è un notebook gaming che fa sentire la sua potenza (e non solo)
MSI Vector 16 HX A13V è un notebook gaming che fa sentire la sua potenza (e non solo)
Abbiamo provato il notebook Vector 16 HX A13V di MSI, un sistema che coniuga hardware di fascia desktop con un buon insieme di porte. Il display Full HD+ permette alla RTX 4080 Laptop di garantire prestazioni top per diversi anni, ma proprio il display e la rumorosità massima rappresentano due nei per un portatile altrimenti convincente.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-10-2008, 18:53   #1
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
[Python] Pensare da informatico: i miei (e i vostri dubbi)

Salve a tutti, ho deciso di aprire questo topic per postare i dubbi inerenti il libro in questione, può sempre capitare di non capire qualcosa. Ovviamente può postare chiunque, a patto che riguardi il libro altrimenti si fa confusione.
Inizio io:

un pò di chiarimenti sul capitolo 3

1) Paragrafo 3.10, penultima riga: "Anche i parametri sono locali: al dì fuori della funzione StampaUnite2Volte, non esiste alcuna cosa chiamata messaggio."
Ma in quella funzione messaggio non è una variabile locale, è stata creata prima. E' un errore del libro?

2) Paragrafo 3.11. Dove si parla della traccia, io chiamo unione in stampa2volte:
Codice:
def stampa2volte(valore):
    print valore, valore

def stampaunite(parte1, parte2):
    unione= parte1 + parte2
    stampa2volte(unione)

strofa="nel mezzo "
strofa2="nel mezzo"

stampa2volte(unione)
ma l'errore che mi dà non è come quello della guida, ma diverso:

Codice:
"Traceback (most recent call last):
  File "C:/Documents and Settings/~FullSyst3m~/Desktop/test.py", line 11, in <module>
    stampa2volte(unione)
NameError: name 'unione' is not defined"
Dipende dalla versione di python (quella del libro è vecchissima)?

3) Paragrafo 3.12. Funzioni con risultati. Non ho mai capito questa cosa. Cosa si intende per funzione che ritorna un risultato/valore? Stamp2Volte non ritorna la stampa del parametro? Perchè non viene considerata una funzione produttiva?

4) Sempre paragrafo 3.12, la prima delle 3 domande:
una funzione del tipo? Se chiamo stampa2volte e non faccio niente con il risultato che viene restituito non succede niente. Non capisco cosa intende il libro quando dice "restituire un risultato" (si può collegare a quella di prima)

Poi, capitolo 4, paragrafo 4.1: "Inoltre può essere usato per estrarre la cifra più a destra di un numero: x%10 restituisce la cifra più a destra in base 10. Allo stesso modo x%100 restituisce le ultime due cifre". Perchè le ultime due?
Non dovrebbe restituire quella più a destra, cioè 0?

4.9, la ricorsione! Eccoci qua! Allora la cosa è semplice, la funzione ContoAllaRovescia chiama se stessa n volte finchè n non corrisponde a 0. Ora, la cosa che non capisco è questa:

"L'esecuzione di ContoAllaRovescia inizia con il valore di n=0. Dal momento che n è 0, essa stampa il testo "Partenza!" e poi ritorna

"La funzione ContoAllaRovescia che aveva n=1; e poi ritorna
La funzione ContoAllaRovescia che aveva n=2; e poi ritorna
E quindi torna il _main_ (questo è un trucco)

Io non capisco cosa è questo "che aveva n=x e poi ritorna... " e il "_main_ (questo è un trucco)". Quando n arriva ad essere uguale a 0 la funzione non dovrebbe terminare?

Paragrafo 4.7, primo esempio:

Codice:
x=5
y=10

if x==y:
    print x, "e", y, "sono uguali"
else:
    if x<y:
        print x, "è minore di", y

else:
    print x, "è maggiore di", y
Sia l'idle che la command line mi riportano un errore di sintassi nel secondo else. Ora, stando alla guida si dovrebbe inserire una sola istruzione else. Quindi il programma per funzionare dovrebbe essere scritto in questo modo:

Codice:
x=5
y=10

if x==y:
    print x, "e", y, "sono uguali"
elif x<y:
    print x, "è minore di", y

else:
    print x, "è maggiore di", y

Anche se sembra strano dopo tutte le correzioni che ha avuto, può essere che è un errore del libro?


So che sono tante, ma alla fine non sono dubbi sul linguaggio di per sè, ma su come sono esposte le cose sul libro, se le cose che "non corrispondono" sono dovute a cambiamenti del linguaggio o altro (considerate il fatto che il libro è quasi di 9 anni fa e da allora ci sono stati sicuramente cambiamenti nel linguaggio)
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 20:04   #2
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Pure io avevo trovato alcuni errori sul libro....però adesso non ricordo se avevo notato pure i tuoi!!!! Visto che hai scritto un "papiro" adesso prenderò in mano il manuale e starò lì a spulciare tutti i punti......



1) Concordo in pieno messaggio non è una variabile locale
2) Anche a me da lo stesso errore
3-4) quelle 2 domande hanno lasciato perplesso pure me quando ho letto cose del tipo "e se non fai nulla con il risultato che ti restituisce ecc..." . Non mi sembra una cosa al di fuori della realtà.
__________________
------------------------------------------------------------------------------------------------------------
Intel Core 2 Duo 2.66Ghz - 3gb Ram - Hard Disk 250gb - Scheda Video: GeForce 8500 Gt da 512mb - Windows Xp Pro SP3
IPHONE 3GS 16GB BLACK
MACBOOK PRO 15,4" 2.40GHz - 4GB RAM 320GB HD
------------------------------------------------------------------------------------------------------------

Ultima modifica di 88MIKI88 : 14-10-2008 alle 20:16.
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 14-10-2008, 21:27   #3
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Appena ho un po' di tempo vedo di darvi una mano. Per adesso devo finire di scrivere l'articolo per domani.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 10:34   #4
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Originariamente inviato da 88MIKI88 Guarda i messaggi
Pure io avevo trovato alcuni errori sul libro....però adesso non ricordo se avevo notato pure i tuoi!!!! Visto che hai scritto un "papiro" adesso prenderò in mano il manuale e starò lì a spulciare tutti i punti......



1) Concordo in pieno messaggio non è una variabile locale
2) Anche a me da lo stesso errore
3-4) quelle 2 domande hanno lasciato perplesso pure me quando ho letto cose del tipo "e se non fai nulla con il risultato che ti restituisce ecc..." . Non mi sembra una cosa al di fuori della realtà.
Ti riferisci al "se non fai nulla con il risultato ecc ecc"?

Ok, cdimauro. Ora fai pure il giornalista??
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 11:24   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Ok, cdimauro. Ora fai pure il giornalista??
Scrive ottimi articoli, non lo sapevi?
-> link
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 11:43   #6
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Scrive ottimi articoli, non lo sapevi?
-> link
Si, lo sapevo che collaborava con appuntidigitali, ma non sapevo fosse cosi bravo. Sa fare tutto quest'uomo..
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 11:48   #7
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Tornando in topic, aggiungo una cosa che ho appena notato.
Partendo dal presupposto che quando si scrive un’istruzione return nell’idle al momento dell’esecuzione non ritorna nulla (si deve mettere un istruzione di stampa) mentre nella command line non ce n’è bisogno (e poi vorrei capire questa cosa), ho notato questo:

Codice:
import math

def DistanzaTraDuePunti(x1,y1,x2,y2):
    dx=x2-x1
    dy=y2-y1
    DistQuadrata=dx**2+dy**2
    Risultato=math.sqrt(DistQuadrata)
    print Risultato
    return Risultato


def AreaCerchio(Raggio):
    math.pi*Raggio**2


def AreaCerchio2(xc,yc,xp,yp):
    Raggio=DistanzaTraDuePunti(xc,yc,xp,yp)
    Risultato=AreaCerchio(Raggio)
    print Risultato
    return Risultato


print AreaCerchio(55)
AreaCerchio2(4,9,7,3)
1)AreaCerchio mi ritorna il valore None
2)Se chiamo la funzione AreaCerchio2, mi ritorna il risultato e poi il None
3)Se tolgo il print da AreaCerchio2 mi ritorna il valore, ma il None sparisce
4)Se metto il print davanti alla chiamata di funzione di AreaCerchio2 mi ritorna il valore e due None
Why??

Comunque per fare un pò di ordine riquoto il mio primo post, togliendo i dubbi ai quali si è già trovato risposta

Quote:
Poi, capitolo 4, paragrafo 4.1: "Inoltre può essere usato per estrarre la cifra più a destra di un numero: x%10 restituisce la cifra più a destra in base 10. Allo stesso modo x%100 restituisce le ultime due cifre". Perchè le ultime due?
Non dovrebbe restituire quella più a destra, cioè 0?

4.9, la ricorsione! Eccoci qua! Allora la cosa è semplice, la funzione ContoAllaRovescia chiama se stessa n volte finchè n non corrisponde a 0. Ora, la cosa che non capisco è questa:

"L'esecuzione di ContoAllaRovescia inizia con il valore di n=0. Dal momento che n è 0, essa stampa il testo "Partenza!" e poi ritorna

"La funzione ContoAllaRovescia che aveva n=1; e poi ritorna
La funzione ContoAllaRovescia che aveva n=2; e poi ritorna
E quindi torna il _main_ (questo è un trucco)

Io non capisco cosa è questo "che aveva n=x e poi ritorna... " e il "_main_ (questo è un trucco)". Quando n arriva ad essere uguale a 0 la funzione non dovrebbe terminare?

Poi, paragrafo 4.7, primo esempio:

Codice:
x=5
y=10

if x==y:
    print x, "e", y, "sono uguali"
else:
    if x<y:
        print x, "è minore di", y

else:
    print x, "è maggiore di", y
Sia l'idle che la command line mi riportano un errore di sintassi nel secondo else. Ora, stando alla guida si dovrebbe inserire una sola istruzione else. Quindi il programma per funzionare dovrebbe essere scritto in questo modo:

Codice:
x=5
y=10

if x==y:
    print x, "e", y, "sono uguali"
elif x<y:
    print x, "è minore di", y

else:
    print x, "è maggiore di", y
Anche se sembra strano dopo tutte le correzioni che ha avuto, può essere che è un errore del libro?

In attesa di risposta, Valerio Staffeli, hwupgrade forum, a voi la linea
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 13:31   #8
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Anche per oggi mi sono salvato in corner.

Stasera appena ho un po' di tempo finalmente mi smazzo tutto il thread e vedo cosa posso fare.

P.S. Mi fate arrossire così!!!
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 13:34   #9
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Anche per oggi mi sono salvato in corner.

Stasera appena ho un po' di tempo finalmente mi smazzo tutto il thread e vedo cosa posso fare.

P.S. Mi fate arrossire così!!!
In zona Cesarini! Comunque non c'è molto da smazzettare.. se ti muovi però!

P.S: non arrossire... In cdimauro we trust
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 17:30   #10
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Ti riferisci al "se non fai nulla con il risultato ecc ecc"?


Esatto mi riferisco proprio a quella frase...quelle 3 domande non so perchè ma mi lasciano tuttora molto perplesso.....
__________________
------------------------------------------------------------------------------------------------------------
Intel Core 2 Duo 2.66Ghz - 3gb Ram - Hard Disk 250gb - Scheda Video: GeForce 8500 Gt da 512mb - Windows Xp Pro SP3
IPHONE 3GS 16GB BLACK
MACBOOK PRO 15,4" 2.40GHz - 4GB RAM 320GB HD
------------------------------------------------------------------------------------------------------------
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 18:33   #11
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Originariamente inviato da 88MIKI88 Guarda i messaggi
Esatto mi riferisco proprio a quella frase...quelle 3 domande non so perchè ma mi lasciano tuttora molto perplesso.....
A me quella che mi lascia più perplesso è la prima, ma se guardi il capitolo 5 e riguardi la domanda si trova una risposta. Cioè, la seconda in pratica non puoi sommare una funzione (ad esempio UnaRigaVuota) ad un numero. Infatti se provi ti dà errore, la terza è nel capitolo 5, cioè le funzioni produttive. return in pratica.

La prima credo che la risposta più logica sia che non succede niente se il risultato non lo assegni a nessuna variabile o non lo inserisci in un'espressione. E come valore di ritorno non si intende il print (che è un'istruzione di stampa), ma il return che ritorna il valore alla funzione chiamante, almeno credo che sia cosi. Comunque aspetteremo conferme da cdimauro e dagli altri utenti

P.S: e comunque un'altra frase "strana" è questa:

"ritorna immediatamente da questa funzione a quella chiamante e usa questa espressione come valore di ritorno"

Non è sempre detto che ci sia una funzione che ne chiama un'altra. return potrebbe significare anche:

"ritorna immediatamente alla funzione chiamante e usa questa espressione come valore di ritorno"
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 21:00   #12
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Salve a tutti, ho deciso di aprire questo topic per postare i dubbi inerenti il libro in questione, può sempre capitare di non capire qualcosa. Ovviamente può postare chiunque, a patto che riguardi il libro altrimenti si fa confusione.
Inizio io:

un pò di chiarimenti sul capitolo 3

1) Paragrafo 3.10, penultima riga: "Anche i parametri sono locali: al dì fuori della funzione StampaUnite2Volte, non esiste alcuna cosa chiamata messaggio."
Ma in quella funzione messaggio non è una variabile locale, è stata creata prima. E' un errore del libro?
Sì, perché si riferisce alla variabile Unione.
Quote:
2) Paragrafo 3.11. Dove si parla della traccia, io chiamo unione in stampa2volte:
Codice:
def stampa2volte(valore):
    print valore, valore

def stampaunite(parte1, parte2):
    unione= parte1 + parte2
    stampa2volte(unione)

strofa="nel mezzo "
strofa2="nel mezzo"

stampa2volte(unione)
ma l'errore che mi dà non è come quello della guida, ma diverso:

Codice:
"Traceback (most recent call last):
  File "C:/Documents and Settings/~FullSyst3m~/Desktop/test.py", line 11, in <module>
    stampa2volte(unione)
NameError: name 'unione' is not defined"
Dipende dalla versione di python (quella del libro è vecchissima)?
Potrebbe anche essere, ma comunque la sostanza è la stessa: l'eccezione sollevata è sempre la NameError. Quella tua ti dà molte più informazioni, ma è sempre la stessa.

Quindi o prima Python riportava meno cose, o nel libro hanno preferito semplificare (un po' troppo) l'output.
Quote:
3) Paragrafo 3.12. Funzioni con risultati. Non ho mai capito questa cosa. Cosa si intende per funzione che ritorna un risultato/valore?
Vuol dire che la funzione elabora i dati, e a chi l'ha chiamata restituisce poi qualcosa che magari gli serve.

Ad esempio se crei la funzione che calcola il fattoriale di un numero n, questa prende in input il numero n, fa tutti i suoi conti e ricava il fattoriale di questo numero. Lo prende e lo ritorna a chi l'ha chiamato che deciderà poi come utilizzarlo (stamparlo a video o farci altro).

Gli operatori classici (+, -, *, /, ecc.) li puoi pensare come funzioni che prendono in input dei valori e restituisco poi il risultato dell'operazione. Con le funzioni è esattamente la stessa cosa.
Quote:
Stamp2Volte non ritorna la stampa del parametro?
No, non ritorna niente. Al suo interno provvede soltanto a stampare a video quello che le è stato passato, ma poi a chi l'ha chiamato non torna "nulla" (lo metto tra virgolette perché più avanti capirai meglio).
Quote:
Perchè non viene considerata una funzione produttiva?
Perché non produce nulla come risultato, appunto. A chi l'ha chiamata non torna niente.

Al suo intero può fare quello che vuole, come stampare qualcosa a video ad esempio, ma comunque non ritorna nulla al chiamante.
Quote:
4) Sempre paragrafo 3.12, la prima delle 3 domande:
una funzione del tipo? Se chiamo stampa2volte e non faccio niente con il risultato che viene restituito non succede niente. Non capisco cosa intende il libro quando dice "restituire un risultato" (si può collegare a quella di prima)
Vedi sopra perché il discorso è quello.

Per farti capire meglio, prova a stampare il risultato di Stampa2Volte e di questa funzione:
Codice:
def FunzioneCheTornaQualcosa(Valore):
  return Valore * 2

print 'Stampa2Volte ha restituito:', Stampa2Volte(10)
print 'FunzioneCheTornaQualcosa ha restituito:', FunzioneCheTornaQualcosa(10)(
Quote:
Poi, capitolo 4, paragrafo 4.1: "Inoltre può essere usato per estrarre la cifra più a destra di un numero: x%10 restituisce la cifra più a destra in base 10. Allo stesso modo x%100 restituisce le ultime due cifre". Perchè le ultime due?
Non dovrebbe restituire quella più a destra, cioè 0?
Perché si tratta dell'operazione di resto del risultato di una divisione. x % 10 divide x per 10 e ne ritorna il resto, che sarà un valore compreso fra 0 e 9 (quindi 1 cifra).
x % 100 divide x per 100 e ritorna il resto, che stavolta sarà compreso fra 0 e 99 (2 cifre).
Quote:
4.9, la ricorsione! Eccoci qua! Allora la cosa è semplice, la funzione ContoAllaRovescia chiama se stessa n volte finchè n non corrisponde a 0. Ora, la cosa che non capisco è questa:

"L'esecuzione di ContoAllaRovescia inizia con il valore di n=0. Dal momento che n è 0, essa stampa il testo "Partenza!" e poi ritorna

"La funzione ContoAllaRovescia che aveva n=1; e poi ritorna
La funzione ContoAllaRovescia che aveva n=2; e poi ritorna
E quindi torna il _main_ (questo è un trucco)

Io non capisco cosa è questo "che aveva n=x e poi ritorna... " e il "_main_ (questo è un trucco)". Quando n arriva ad essere uguale a 0 la funzione non dovrebbe terminare?
Infatti termina. Il concetto è il seguente. Tu passi a questa funzione un valore intero che supponiamo essere 3, come nell'esempio.

Appena entrati nella funzione, n avrà valore 3. Poiché c'è subito un controllo per vedere se per caso n è arrivato a 0, il sistema passa a eseguire il blocco dell'else che provvede come prima cosa a stampare n e poi a richiamare la funzione stessa, ma questa volta passandogli n - 1.

Il concetto che devi capire è che a questo punto l'esecuzione della funzione e il valore della variabile n vengono "congelati". Fatto questo, il computer crea una nuova variabile n e gli associa il valore 2 (cioé il valore della variabile n che è stata congelata, meno 1). A questo punto richiama nuovamente la funzione passandogli questa NUOVA variabile n, e sulla quale essa lavorerà.

E così via, fino a quando non verrà richiamata la funzione ma con n = 0. A questo punto la funzione stamperà quella scritta, e ritornerà indietro andando a "scongelare" le precedenti esecuzioni della funzione, fino ad arrivare alla prima esecuzione "congelata" che comporterà poi l'uscita "definitiva" dalla funzione e il ritorno al programma principale.
Quote:
Paragrafo 4.7, primo esempio:

Codice:
x=5
y=10

if x==y:
    print x, "e", y, "sono uguali"
else:
    if x<y:
        print x, "è minore di", y

else:
    print x, "è maggiore di", y
Sia l'idle che la command line mi riportano un errore di sintassi nel secondo else. Ora, stando alla guida si dovrebbe inserire una sola istruzione else. Quindi il programma per funzionare dovrebbe essere scritto in questo modo:

Codice:
x=5
y=10

if x==y:
    print x, "e", y, "sono uguali"
elif x<y:
    print x, "è minore di", y

else:
    print x, "è maggiore di", y

Anche se sembra strano dopo tutte le correzioni che ha avuto, può essere che è un errore del libro?
Il libro è corretto se ci fai caso. Sei tu che hai aggiunto una riga vuota prima dell'else. In questo caso con IDLE o con il prompt dei comandi Python ti dà errore, perché non ci possono essere spazi in quanto viene considerato come terminazione del blocco.

Gli spazi li puoi lasciare soltanto se scrivi quel codice in un file e poi lo esegui.
Quote:
So che sono tante, ma alla fine non sono dubbi sul linguaggio di per sè, ma su come sono esposte le cose sul libro, se le cose che "non corrispondono" sono dovute a cambiamenti del linguaggio o altro (considerate il fatto che il libro è quasi di 9 anni fa e da allora ci sono stati sicuramente cambiamenti nel linguaggio)
E io sono per risponderti, nel limite delle mie possibilità e del mio tempo libero.

Spero di averti chiarito tutti i dubbi.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 21:07   #13
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Tornando in topic, aggiungo una cosa che ho appena notato.
Partendo dal presupposto che quando si scrive un’istruzione return nell’idle al momento dell’esecuzione non ritorna nulla (si deve mettere un istruzione di stampa) mentre nella command line non ce n’è bisogno (e poi vorrei capire questa cosa),
Nella command line l'interprete è predisposto per stampare eventuali risultati delle espressioni.

Quindi se scrivi ad esempio 3 * 5 ti stamperà 15.
Quote:
ho notato questo:

Codice:
import math

def DistanzaTraDuePunti(x1,y1,x2,y2):
    dx=x2-x1
    dy=y2-y1
    DistQuadrata=dx**2+dy**2
    Risultato=math.sqrt(DistQuadrata)
    print Risultato
    return Risultato


def AreaCerchio(Raggio):
    math.pi*Raggio**2


def AreaCerchio2(xc,yc,xp,yp):
    Raggio=DistanzaTraDuePunti(xc,yc,xp,yp)
    Risultato=AreaCerchio(Raggio)
    print Risultato
    return Risultato


print AreaCerchio(55)
AreaCerchio2(4,9,7,3)
1)AreaCerchio mi ritorna il valore None
Perché non torni nulla, appunto. In Python affinché una funzione ritorni un valore devi utilizzare sempre l'istruzione return. Quindi così:
Codice:
def AreaCerchio(Raggio):
    return math.pi*Raggio**2
Quote:
2)Se chiamo la funzione AreaCerchio2, mi ritorna il risultato e poi il None
Con quel codice sbagliato deve tornarti None e stampartelo pure a video.
Quote:
3)Se tolgo il print da AreaCerchio2 mi ritorna il valore, ma il None sparisce
Perché viene omesso dalla command line.
Quote:
4)Se metto il print davanti alla chiamata di funzione di AreaCerchio2 mi ritorna il valore e due None
Why??
Il primo None lo stampa perché lo fa AreaCerchio2. Il secondo perché gliel'hai chiesto esplicitamente tu.

Questo perché tu stai usando Python dalla command line, che è una speciale modalità utile per "smanettare", provando al volo pezzi di codice.
Quote:
Comunque per fare un pò di ordine riquoto il mio primo post, togliendo i dubbi ai quali si è già trovato risposta
Troppo tardi, non avevo letto. Ho risposto a tutto.
Quote:
In attesa di risposta, Valerio Staffeli, hwupgrade forum, a voi la linea
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 22:04   #14
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Sì, perché si riferisce alla variabile Unione.
O magari alla variabile messaggio, ma visto il contesto è più probabile che si riferisca ad unione

Quote:
Potrebbe anche essere, ma comunque la sostanza è la stessa: l'eccezione sollevata è sempre la NameError. Quella tua ti dà molte più informazioni, ma è sempre la stessa.

Quindi o prima Python riportava meno cose, o nel libro hanno preferito semplificare (un po' troppo) l'output.
Io credo che sia una questione di versione di software. Comunque tu che usi python da un pò dovresti saperlo no??

Quote:
Vuol dire che la funzione elabora i dati, e a chi l'ha chiamata restituisce poi qualcosa che magari gli serve.

Ad esempio se crei la funzione che calcola il fattoriale di un numero n, questa prende in input il numero n, fa tutti i suoi conti e ricava il fattoriale di questo numero. Lo prende e lo ritorna a chi l'ha chiamato che deciderà poi come utilizzarlo (stamparlo a video o farci altro).

Gli operatori classici (+, -, *, /, ecc.) li puoi pensare come funzioni che prendono in input dei valori e restituisco poi il risultato dell'operazione. Con le funzioni è esattamente la stessa cosa.
Capito!

Quote:
No, non ritorna niente. Al suo interno provvede soltanto a stampare a video quello che le è stato passato, ma poi a chi l'ha chiamato non torna "nulla" (lo metto tra virgolette perché più avanti capirai meglio).
Ok, aspetterò più avanti! Comunque capito tutto il resto!

Quote:
Per farti capire meglio, prova a stampare il risultato di Stampa2Volte e di questa funzione
Adesso sono fuori, quando torno a casa provo

Quote:
Perché si tratta dell'operazione di resto del risultato di una divisione. x % 10 divide x per 10 e ne ritorna il resto, che sarà un valore compreso fra 0 e 9 (quindi 1 cifra).
x % 100 divide x per 100 e ritorna il resto, che stavolta sarà compreso fra 0 e 99 (2 cifre).
Capito!

Quote:
Infatti termina. Il concetto è il seguente. Tu passi a questa funzione un valore intero che supponiamo essere 3, come nell'esempio.

Appena entrati nella funzione, n avrà valore 3. Poiché c'è subito un controllo per vedere se per caso n è arrivato a 0, il sistema passa a eseguire il blocco dell'else che provvede come prima cosa a stampare n e poi a richiamare la funzione stessa, ma questa volta passandogli n - 1.

Il concetto che devi capire è che a questo punto l'esecuzione della funzione e il valore della variabile n vengono "congelati". Fatto questo, il computer crea una nuova variabile n e gli associa il valore 2 (cioé il valore della variabile n che è stata congelata, meno 1). A questo punto richiama nuovamente la funzione passandogli questa NUOVA variabile n, e sulla quale essa lavorerà.

E così via, fino a quando non verrà richiamata la funzione ma con n = 0. A questo punto la funzione stamperà quella scritta, e ritornerà indietro andando a "scongelare" le precedenti esecuzioni della funzione, fino ad arrivare alla prima esecuzione "congelata" che comporterà poi l'uscita "definitiva" dalla funzione e il ritorno al programma principale.
Tutto chiaro! Grazie

Quote:
Il libro è corretto se ci fai caso. Sei tu che hai aggiunto una riga vuota prima dell'else. In questo caso con IDLE o con il prompt dei comandi Python ti dà errore, perché non ci possono essere spazi in quanto viene considerato come terminazione del blocco.

Gli spazi li puoi lasciare soltanto se scrivi quel codice in un file e poi lo esegui
Ma io infatti oltre a scrivere nella command line l'ho scritto nel file e l'ho eseguito dall'idle, ma mi dà lo stesso errore. E poi perchè viene considerata come un'interruzione del blocco? Non sono in una funzione. E poi non si dovrebbe poter usare un solo else? Inoltre, un else senza un altra istruzione condizionale prima non si può usare?

Quote:
Nella command line l'interprete è predisposto per stampare eventuali risultati delle espressioni.

Quindi se scrivi ad esempio 3 * 5 ti stamperà 15.
Questo lo sapevo, ma non sapeva che era predisposto anche per i return (che scemo!)

Quote:
Perché non torni nulla, appunto. In Python affinché una funzione ritorni un valore devi utilizzare sempre l'istruzione return. Quindi così:
Chiaro

Quote:
Con quel codice sbagliato deve tornarti None e stampartelo pure a video.
Questo perchè ho inserito il print in AreaCerchio (mi riferisco all'idle)?

Quote:
Perché viene omesso dalla command line.
Perchè viene omesso? Comunque io queste prove le ho fatte nell'idle, non nella command line

Quote:
Il primo None lo stampa perché lo fa AreaCerchio2. Il secondo perché gliel'hai chiesto esplicitamente tu.

Questo perché tu stai usando Python dalla command line, che è una speciale modalità utile per "smanettare", provando al volo pezzi di codice.
Come ho detto in questo caso lo uso dall'idle. Se lo fa AreaCerchio2, allora perchè quando ho tolto il print mi dà il risultato senza None? E dove gliel'ho chiesto esplicitamente io?

Quote:
In attesa di risposta, Valerio Staffeli, hwupgrade forum, a voi la linea
In attesa di risposta, Valerio Staffeli, hwupgrade forum, a voi la linea
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 15-10-2008, 22:19   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
O magari alla variabile messaggio, ma visto il contesto è più probabile che si riferisca ad unione
E' sicuramente Unione.
Quote:
Io credo che sia una questione di versione di software. Comunque tu che usi python da un pò dovresti saperlo no??
Mica mi ricordo i dettagli con tutte le differenze fra le varie versioni.
Quote:
Ma io infatti oltre a scrivere nella command line l'ho scritto nel file e l'ho eseguito dall'idle, ma mi dà lo stesso errore.
Idle l'ho usato pochissimo all'inizio, ma che io ricordi dovrebbe comportarsi come la command line (oltre ad aggiungere altre cose).
Quote:
E poi perchè viene considerata come un'interruzione del blocco? Non sono in una funzione.
Non importa: un blocco lo puoi definire anche fuori dalle funzioni.
Quote:
E poi non si dovrebbe poter usare un solo else?
Sì, ma tu ne hai messo un altro dopo, separato però da una riga vuota.
Quote:
Inoltre, un else senza un altra istruzione condizionale prima non si può usare?
No, appunto. Dev'essere legato per forza a un precedente if. Con la riga vuota questo "legame" viene spezzato (tranne se conservi il file e lo esegui poi da prompt dei comandi con Python NomeFile.py).
Quote:
Questo perchè ho inserito il print in AreaCerchio (mi riferisco all'idle)?

Quote:
Perchè viene omesso? Comunque io queste prove le ho fatte nell'idle, non nella command line
Dovrebbe essere lo stesso.

Viene omesso perché se non metti print e una funzione non torna nulla, di default non stampa nulla la command line (o idle).
Quote:
Come ho detto in questo caso lo uso dall'idle. Se lo fa AreaCerchio2, allora perchè quando ho tolto il print mi dà il risultato senza None?
Vedi sotto.
Quote:
E dove gliel'ho chiesto esplicitamente io?
Se metti print prima stai chiedendo a Python di stampare qualunque cosa venga tornato dalla funzione, quindi anche None (che significa, appunto, niente).
Quote:
In attesa di risposta, Valerio Staffeli, hwupgrade forum, a voi la linea
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2008, 12:06   #16
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Quote:
Mica mi ricordo i dettagli con tutte le differenze fra le varie versioni
Vabbè parlavo in linee generali!
Quote:
Idle l'ho usato pochissimo all'inizio, ma che io ricordi dovrebbe comportarsi come la command line (oltre ad aggiungere altre cose).
Non si comporta proprio come la command line, là i comandi vengono interpretati in tempo reale, nell'idle invece un'istruzione return non viene visualizzata se non si inserisce un print
Quote:
Non importa: un blocco lo puoi definire anche fuori dalle funzioni. Sì, ma tu ne hai messo un altro dopo, separato però da una riga vuota. No, appunto. Dev'essere legato per forza a un precedente if. Con la riga vuota questo "legame" viene spezzato (tranne se conservi il file e lo esegui poi da prompt dei comandi con Python NomeFile.py).
Si lo so che si può definire anche fuori dalle funzioni, ma non sapevo che mettendo uno spazio python lo interpretava come la fine di un blocco. Comunque resta sempre il fatto che ci sono due else, quando invece li libro dice che ce ne dovrebbe essere solo uno. Come mai?
E per quanto riguarda il "legame", se io conservo il file e lo eseguo dalla shell, che cambia? La sintassi di Python se è questa non può cambiare
Quote:
Viene omesso perché se non metti print e una funzione non torna nulla, di default non stampa nulla la command line (o idle). Se metti print prima stai chiedendo a Python di stampare qualunque cosa venga tornato dalla funzione, quindi anche None (che significa, appunto, niente).
Su questo siamo d'accordo, ma ad esempio, mettendo il print in DistanzaTraDuePunti e AreaCerchio2, non dovrebbe tornarmi nessun None visto che in AreaCerchio non c'è nessun print, invece mi ritorna il None. Perchè?
Codice:
import math

def DistanzaTraDuePunti(x1,y1,x2,y2):
    dx=x2-x1
    dy=y2-y1
    DistQuadrata=dx**2+dy**2
    Risultato=math.sqrt(DistQuadrata)
    print Risultato
    return Risultato



def AreaCerchio(Raggio):
    math.pi*Raggio**2


def AreaCerchio2(xc,yc,xp,yp):
    Raggio=DistanzaTraDuePunti(xc,yc,xp,yp)
    Risultato=AreaCerchio(Raggio)
    print Risultato
    return Risultato



AreaCerchio2 (21,36,5,8)
Se invece tolgo il print ad AreaCerchio2 mi stampa il risultato senza nessun None

Quote:
Viene omesso perché se non metti print e una funzione non torna nulla, di default non stampa nulla la command line (o idle).
Ma AreaCerchio ritorna qualcosa, eccome. Tutte e tre le funzioni ritornano dei valori
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2008, 19:06   #17
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Codice:
9.4 Numeri casuali

La maggior parte dei programmi fanno la stessa cosa ogni volta che vengono eseguiti e sono detti per questo deterministici. Di solito un programma deterministico è una cosa voluta in quanto a parità di dati in ingresso ci attendiamo lo stesso risultato. Per alcune applicazioni, invece, abbiamo bisogno che l'esecuzione sia imprevedibile: i videogiochi sono un esempio lampante, ma ce ne sono tanti altri.

Creare un programma realmente non deterministico (e quindi imprevedibile) è una cosa piuttosto difficile, ma ci sono dei sistemi per renderlo abbastanza casuale da soddisfare la maggior parte delle esigenze in tal senso. Uno dei sistemi è quello di generare dei numeri casuali ed usarli per determinare i risultati prodotti dal programma. Python fornisce delle funzioni di base che generano numeri pseudocasuali: questi numeri non sono realmente casuali in senso matematico ma per i nostri scopi saranno più che sufficienti.

Il modulo random contiene una funzione chiamata random che restituisce un numero in virgola mobile compreso tra 0.0 (compreso) e 1.0 (escluso). Ad ogni chiamata di random si ottiene il numero seguente di una lunga serie di numeri pseudocasuali. Per vedere un esempio prova ad eseguire questo ciclo:

import random

for i in range(10):
  x = random.random()
  print x

Per generare un numero casuale (lo chiameremo così d'ora in poi, anche se è sottinteso che la casualità ottenuta non è assoluta) compreso tra 0.0 (compreso) ed un limite superiore Limite (escluso) moltiplica x per Limite.

    Esercizio: tenta di generare un numero casuale compreso tra il \linebreak LimiteInferiore (compreso) ed il LimiteSuperiore (escluso). 

    Esercizio addizionale: genera un numero intero compreso tra il \linebreak LimiteInferiore ed il LimiteSuperiore comprendendo entrambi questi limiti.
Questa parte mi lascia un pò perplesso soprattutto la parte che inizia con "Per Generare....." .
__________________
------------------------------------------------------------------------------------------------------------
Intel Core 2 Duo 2.66Ghz - 3gb Ram - Hard Disk 250gb - Scheda Video: GeForce 8500 Gt da 512mb - Windows Xp Pro SP3
IPHONE 3GS 16GB BLACK
MACBOOK PRO 15,4" 2.40GHz - 4GB RAM 320GB HD
------------------------------------------------------------------------------------------------------------
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2008, 19:50   #18
88MIKI88
Member
 
L'Avatar di 88MIKI88
 
Iscritto dal: Dec 2007
Città: .......
Messaggi: 188
Capitolo 9 Tuple
Codice:
9.3 Tuple come valori di ritorno

Le funzioni possono ritornare tuple. Per fare un esempio possiamo scrivere una funzione che scambia due valori:

def Scambia(x, y):
  return y, x

e in seguito possiamo assegnare il valore di ritorno della funzione ad una tupla di due variabili:

a, b = Scambia(a, b)
Non puoi effettuare un assegnamento del genere o sbaglio??!!!!! a,b=Scambia(a,b)

Genera un'errore: SyntaxError: can't assign to literal
__________________
------------------------------------------------------------------------------------------------------------
Intel Core 2 Duo 2.66Ghz - 3gb Ram - Hard Disk 250gb - Scheda Video: GeForce 8500 Gt da 512mb - Windows Xp Pro SP3
IPHONE 3GS 16GB BLACK
MACBOOK PRO 15,4" 2.40GHz - 4GB RAM 320GB HD
------------------------------------------------------------------------------------------------------------
88MIKI88 è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2008, 20:06   #19
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Non si comporta proprio come la command line, là i comandi vengono interpretati in tempo reale, nell'idle invece un'istruzione return non viene visualizzata se non si inserisce un print
OK. Passa a un IDE migliore.
Quote:
Si lo so che si può definire anche fuori dalle funzioni, ma non sapevo che mettendo uno spazio python lo interpretava come la fine di un blocco.
In Python l'indentazione è importante.
Quote:
Comunque resta sempre il fatto che ci sono due else, quando invece li libro dice che ce ne dovrebbe essere solo uno. Come mai?
Hai sbagliato ancora una volta l'indentazione, e hai appioppato anche il secondo else al primo.

Se avessi usato un editor come SPE o Komodo Edit, ti sarebbe stato immediatamente segnalato.
Quote:
E per quanto riguarda il "legame", se io conservo il file e lo eseguo dalla shell, che cambia? La sintassi di Python se è questa non può cambiare
Da command line Python differisce un po' per quanto riguarda la definizione dei blocchi, perché la prima riga vuota la interpreta come fine del blocco.

La command line di Python NON è fatta per lavorare seriamente, ma soltanto per SPERIMENTARE velocemente pezzi di codice. Da qui l'esigenza di chiudere i blocchi alla prima riga vuota.

Per lavorare seriamente usa un editore decente.
Quote:
Su questo siamo d'accordo, ma ad esempio, mettendo il print in DistanzaTraDuePunti e AreaCerchio2, non dovrebbe tornarmi nessun None visto che in AreaCerchio non c'è nessun print, invece mi ritorna il None. Perchè?
Codice:
import math

def DistanzaTraDuePunti(x1,y1,x2,y2):
    dx=x2-x1
    dy=y2-y1
    DistQuadrata=dx**2+dy**2
    Risultato=math.sqrt(DistQuadrata)
    print Risultato
    return Risultato



def AreaCerchio(Raggio):
    math.pi*Raggio**2


def AreaCerchio2(xc,yc,xp,yp):
    Raggio=DistanzaTraDuePunti(xc,yc,xp,yp)
    Risultato=AreaCerchio(Raggio)
    print Risultato
    return Risultato



AreaCerchio2 (21,36,5,8)
Se invece tolgo il print ad AreaCerchio2 mi stampa il risultato senza nessun None

Ma AreaCerchio ritorna qualcosa, eccome. Tutte e tre le funzioni ritornano dei valori
AreaCerchio non ritorna proprio nulla invece (a parte il None, appunto) perché manca l'istruzione return. In Python una funzione torna qualcosa se viene usata l'istruzione return, altrimenti per default viene sempre tornato None.

Purtroppo fino a quando non userai un editor come si deve avremo problemi di questo tipo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2008, 20:07   #20
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4660
Codice:
def FunzioneCheTornaQualcosa(Valore):
  return Valore * 2

print 'Stampa2Volte ha restituito:', Stampa2Volte(10)
print 'FunzioneCheTornaQualcosa ha restituito:', FunzioneCheTornaQualcosa(10)(
Il primo mi ritorna: TypeError: Stampa2Volte() takes no arguments (1 given)
Il secondo: FunzioneCheTornaQualcosa ha restituito 20
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione ASUS ROG Cetra TWS SpeedNova: le migliori nella loro fascia, ma lo stelo va accorciato Recensione ASUS ROG Cetra TWS SpeedNova: le migl...
Google Pixel 8a: può diventare un vero best buy? La recensione Google Pixel 8a: può diventare un vero be...
MSI Vector 16 HX A13V è un notebook gaming che fa sentire la sua potenza (e non solo) MSI Vector 16 HX A13V è un notebook gamin...
In Photoshop arriva l'IA di nuova generazione In Photoshop arriva l'IA di nuova generazione
Recensione realme 12+: sfida la fascia media con un design unico e un display luminosissimo Recensione realme 12+: sfida la fascia media con...
MSI, alimentatori con certificazione PPL...
AI PC Lunar Lake, Intel è sicura:...
Questa chiavetta USB può memorizz...
Kyndryl e NVIDIA: una partnership per ac...
Thermal Grizzly: il raffreddamento direc...
Fujifilm X-T50: tutte le differenze con ...
La serie Razr 50 di Motorola non ha pi&u...
Il Passaporto si può richiedere a...
Microchip cerebrale contro il Parkinson ...
Fujifilm GFX100S II: tutte le differenze...
Missioni suborbitali: Blue Origin torna ...
iPhone 16 Pro Max, il top di gamma integ...
Come ottenere un Samsung Galaxy Watch6 i...
Slack, algoritmi IA allenati con i dati ...
Problemi su iPad Pro OLED: segnalati dis...
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: 22:57.


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