Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio
HUAWEI MatePad Air combina diverse carte molto interessanti: un OLED PaperMatte da 12 pollici, un corpo sottile e una tastiera molto comoda. Durante la prova abbiamo apprezzato fluidità, audio e comfort visivo, mentre i test hanno chiarito pregi e qualche limite nelle prestazioni. L'autonomia ha convinto anche nell'uso intermittente; la scelta passa dalla compatibilità delle proprie app e dal valore del pacchetto con accessori, proposto a 749 euro
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
Debuttano ufficialmente i primi sistemi notebook basati su piattaforma NVIDIA RTX Spark, abbinati a Windows on ARM e pensati per l'intelligenza artificiale agentica. Architettura integrata tra CPU e GPU che condividono la memoria di sistema, capace di gestire in locale modelli molto grandi ma al contempo anche di spiccare con la grafica e l'elaborazione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-03-2009, 19:54   #1
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Programmazione con Python

Ciao a tutti, mi trovo alle prese con le classi ed oggetti di pyhton, utilizzo il pensare come libro.
Questo è il primo esempio.
Codice:
class Punto:											
	P1.x = 3.0		#definisco la classe Punto
	P1.y = 4.0		#definisco la varibile P1 e gli attributi
	print'(' + str(P1.x) +', '+ str(P1.y) + ')'
	DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y

P1 = Punto()
print P1.x
print P1.y
Il libro mi specifica pure che la riga del print stampa (3.0, 4.0) e la riga seguente il valore 25.0 che è il risultato dell'operazione.
Quindi, a detta del libro, dovrebbe andare tutto bene, invece appena metto il codice su Terminale visualizzo :

Codice:
class Punto:                                                                                  
     P1.x = 3.0
     P1.y = 4.0
     print'(' + str(P1.x) +', '+ str(P1.y) + ')'
     DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
      
(3.0, 4.0)
>>> P1 = Punto()
>>> print P1.x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'x'
>>> print P1.y
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'y'
Cos'è che sbaglio?
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 20:02   #2
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
Ciao a tutti, mi trovo alle prese con le classi ed oggetti di pyhton, utilizzo il pensare come libro.
Questo è il primo esempio.
Codice:
class Punto:											
	P1.x = 3.0		#definisco la classe Punto
	P1.y = 4.0		#definisco la varibile P1 e gli attributi
	print'(' + str(P1.x) +', '+ str(P1.y) + ')'
	DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y

P1 = Punto()
print P1.x
print P1.y
Il libro mi specifica pure che la riga del print stampa (3.0, 4.0) e la riga seguente il valore 25.0 che è il risultato dell'operazione.
Quindi, a detta del libro, dovrebbe andare tutto bene, invece appena metto il codice su Terminale visualizzo :

Codice:
class Punto:                                                                                  
     P1.x = 3.0
     P1.y = 4.0
     print'(' + str(P1.x) +', '+ str(P1.y) + ')'
     DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
      
(3.0, 4.0)
>>> P1 = Punto()
>>> print P1.x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'x'
>>> print P1.y
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'y'
Cos'è che sbaglio?
Sbagli la stessa cosa dell'alto giorno: non puoi usare P1.x dentro la classe se P1 non lo hai referenziato. E il libro lo fa vedere chiaro:
Codice:
class Punto:
    pass

P1 = Punto()
P1.x = 10
P1.y = 11
E la stessa cosa vale per il resto del codice: non puoi usare P1 se non esiste.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 20:05   #3
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Puoi postare il codice completo del libro, e dirmi che versione usi di Python?

Intanto ti dico che, giustamente, Python ti segnala che quell'istanza non possiede gli attribuiti x e y.
__________________
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 31-03-2009, 21:07   #4
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
E il libro lo fa vedere chiaro:
Codice:
class Punto:
    pass

P1 = Punto()
P1.x = 10
P1.y = 11
E la stessa cosa vale per il resto del codice: non puoi usare P1 se non esiste.
Ma sul mio libro c'è scritto questo
Codice:
class Punto:													pass		
	P1 = Punto()
		P1.x = 3.0
		P1.y = 4.0
		print'(' + str(P1.x) +', '+ str(P1.y) + ')'
		DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y

print P1.x
print P1.y
La versione di python che utilizzo è la 2.5.4 e se scrivo su IDLE ottengo:

Codice:
class Punto:											
	P1.x = 3.0		#definisco la classe Punto
	P1.y = 4.0		#definisco la varibile P1 e gli attributi
	print'(' + str(P1.x) +', '+ str(P1.y) + ')'
	DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y

P1 = Punto()
print P1.x
print P1.y
SyntaxError: invalid syntax
Se invece scrivo su Terminale ottengo :

Codice:
class Punto:                                                                                  
     P1.x = 3.0              #definisco la classe Punto
     P1.y = 4.0              #definisco la varibile P1 e gli attributi
     print'(' + str(P1.x) +', '+ str(P1.y) + ')'
     DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
 
(3.0, 4.0)
P1 = Punto()
print P1.x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'x'
print P1.y
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'y'
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 21:17   #5
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
Ma sul mio libro c'è scritto questo
Codice:
class Punto:													pass		
	P1 = Punto()
		P1.x = 3.0
		P1.y = 4.0
		print'(' + str(P1.x) +', '+ str(P1.y) + ')'
		DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y

print P1.x
print P1.y
La versione di python che utilizzo è la 2.5.4 e se scrivo su IDLE ottengo:

Codice:
class Punto:											
	P1.x = 3.0		#definisco la classe Punto
	P1.y = 4.0		#definisco la varibile P1 e gli attributi
	print'(' + str(P1.x) +', '+ str(P1.y) + ')'
	DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y

P1 = Punto()
print P1.x
print P1.y
SyntaxError: invalid syntax
Se invece scrivo su Terminale ottengo :

Codice:
class Punto:                                                                                  
     P1.x = 3.0              #definisco la classe Punto
     P1.y = 4.0              #definisco la varibile P1 e gli attributi
     print'(' + str(P1.x) +', '+ str(P1.y) + ')'
     DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
 
(3.0, 4.0)
P1 = Punto()
print P1.x
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'x'
print P1.y
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: Punto instance has no attribute 'y'
Scusa, mi dai il link al documento che stai studiando?
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 09:31   #6
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
il link è questo http://www.python.it/doc/Howtothink/...-it/chap12.htm

Poi una domanda ma il libro perché mi dice di fare questa sequenza se è sbagliata?

e mi dicevi che il libro fa l'esempio della sequenza iniziale del codice con il pass in questo modo
Codice:
class Punto
    pass
e quindi mi fa capire che così si definisce una classe, ma poi poche righe sotto mi dice:
"L'istruzione pass non ha effetti è stata inserita solo per il solo fatto che la definizione prevede un corpo che deve ancora essere scritto"

Quindi desumo che non va usato, giusto?

Poi più avanti mi dice :
"Per creare un oggetto di tipo Punto viene chiamata una funzione chiamata Punto:
Codice:
P1 = Punto()
Poi mi dice di aggiungere un dato all'istanza
Codice:
P1.x = 3.0
P1.y = 4.0
e poi per stampare gli attributi delle variabili P1 :
Codice:
print P1.y
print P1.x
e poi per ultimo mi dice l'operazione per stampare il risultato e per effettuare l'operazione della Distanza al quadrato:

Codice:
print'(' + str(P1.x) +', '+ str(P1.y) + ')'
	DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
Dall'unione di tutto questo ho formato il codice che mi avete detto essere sbagliato.
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 09:48   #7
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
il link è questo http://www.python.it/doc/Howtothink/...-it/chap12.htm

Poi una domanda ma il libro perché mi dice di fare questa sequenza se è sbagliata?

e mi dicevi che il libro fa l'esempio della sequenza iniziale del codice con il pass in questo modo
Codice:
class Punto
    pass
e quindi mi fa capire che così si definisce una classe, ma poi poche righe sotto mi dice:
"L'istruzione pass non ha effetti è stata inserita solo per il solo fatto che la definizione prevede un corpo che deve ancora essere scritto"

Quindi desumo che non va usato, giusto?

Poi più avanti mi dice :
"Per creare un oggetto di tipo Punto viene chiamata una funzione chiamata Punto:
Codice:
P1 = Punto()
Poi mi dice di aggiungere un dato all'istanza
Codice:
P1.x = 3.0
P1.y = 4.0
e poi per stampare gli attributi delle variabili P1 :
Codice:
print P1.y
print P1.x
e poi per ultimo mi dice l'operazione per stampare il risultato e per effettuare l'operazione della Distanza al quadrato:

Codice:
print'(' + str(P1.x) +', '+ str(P1.y) + ')'
	DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
Dall'unione di tutto questo ho formato il codice che mi avete detto essere sbagliato.
Come dice il libro, il pass è un segnaposto, non fa nulla. Quel codice tu non lo devi scrivere dentro la classe, il libro te lo avrebbe detto, devi scriverlo al di fuori, come ti ho già spiegato e fatto vedere.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 12:07   #8
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Ho capito l'errore....

Allora io facevo questo :
Codice:
class Punto:													pass		
	P1 = Punto()
		P1.x = 3.0
		P1.y = 4.0
print P1.x
print P1.y
Invece dovevo fare questo :
Codice:
>>> class Punto:
	pass

	
>>> p1 = Punto()
>>> P1.x = 3.0
>>> P1.y = 4.0
>>> 
>>> print P1.x
3.0
>>> print P1.y
4.0
Ed inserire il codice quando mi spuntavano le >>>, cosa che io non facevo ed attaccavo tutto....

Adesso un dubbio.
Dato questo codice:
Codice:
>>> class Punto:
	pass

	
>>> P1.x = 3.0
>>> P1.y = 4.0
>>> print'(' + str(P1.x) +', '+ str(P1.y) + ')'
(3.0, 4.0)
>>> DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
>>>
Perché il print mi stampa il risultato ed invece il passaggio successivo non mi fa le moltiplicazioni e mi stampa i >>> ?

@FULL
Tu mi parlavi di dentro la classe e fuori la classe, io non so se ti riferivi a quello che o scoperto adesso, perché non capivo cosa intendevi, e quindi continuavo a non seguire.
Comunque grazie lo stesso.

Ultima modifica di nuvolare : 01-04-2009 alle 12:26.
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 12:36   #9
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
Ho capito l'errore....

Allora io facevo questo :
Codice:
class Punto:													pass		
	P1 = Punto()
		P1.x = 3.0
		P1.y = 4.0
print P1.x
print P1.y
Invece dovevo fare questo :
Codice:
>>> class Punto:
	pass

	
>>> p1 = Punto()
>>> P1.x = 3.0
>>> P1.y = 4.0
>>> 
>>> print P1.x
3.0
>>> print P1.y
4.0
Ed inserire il codice quando mi spuntavano le >>>, cosa che io non facevo ed attaccavo tutto....

Adesso un dubbio.
Dato questo codice:
Codice:
>>> class Punto:
	pass

	
>>> P1.x = 3.0
>>> P1.y = 4.0
>>> print'(' + str(P1.x) +', '+ str(P1.y) + ')'
(3.0, 4.0)
>>> DistanzaAlQuadrato = P1.x * P1.x + P1.y * P1.y
>>>
Perché il print mi stampa il risultato ed invece il passaggio successivo non mi fa le moltiplicazioni e mi stampa i >>> ?
Perchè fai un assegnamento. Stai assegnando il valore di quell'espressione alla variabile DistanzaAlQuadrato. Se vuoi vedere il risultato printa la variabile

Codice:
print DistanzaAlQuadrato
Quote:
@FULL
Tu mi parlavi di dentro la classe e fuori la classe, io non so se ti riferivi a quello che o scoperto adesso, perché non capivo cosa intendevi, e quindi continuavo a non seguire.
Comunque grazie lo stesso.
Si, mi riferivo a questo. Dentro la classe significa dentro il corpo della classe. L'indentazione in Python è importantissima.
Codice:
class Punto:
    dentro la classe
    dentro la classe

fuori la classe
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 12:43   #10
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
Si, mi riferivo a questo. Dentro la classe significa dentro il corpo della classe. L'indentazione in Python è importantissima.
Si, ok adesso ho fatto il print di DistanzaAlQuadrato ed è uscito il risultato.
Il problema e che di identazione non ne ha mai parlato questo libro, quindi quello che so e grazie a te ai vari forum e agli esperimenti fatti.
Ma non c'è un listato di quando e come fare l'identazione?
Tipo, dopo il print, dopo al funzione, in questo senso, perché altrimenti non so mai quando è giusto e quando non lo è.
Grazie
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 13:45   #11
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
Si, ok adesso ho fatto il print di DistanzaAlQuadrato ed è uscito il risultato.
Il problema e che di identazione non ne ha mai parlato questo libro, quindi quello che so e grazie a te ai vari forum e agli esperimenti fatti.
Ma non c'è un listato di quando e come fare l'identazione?
Tipo, dopo il print, dopo al funzione, in questo senso, perché altrimenti non so mai quando è giusto e quando non lo è.
Grazie
Ne parla nei primi capitoli dell'indentazione. Comunque l'indentazione si usa quando devi inserire delle istruzioni in un blocco. Ad esempio dentro una funzione, una classe, un ciclo for, un while ecc.

Se usi un IDE mezzo decente impari a capire quando usarla, ti indenta in automatico il codice. Infine, non usare sempre il terminale, cosi fai solo confusione. Usalo solo quando devi fare qualche prova al volo, per il resto usa l'IDE. Cosi puoi modificare il file quando vuoi, salvarlo e imparare come usare l'indentazione.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 15:17   #12
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ho creato un mostro!
__________________
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 01-04-2009, 16:41   #13
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Ho creato un mostro!
Dai che mi fai arrossire
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 17:29   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
In pochi mesi sei passato dal chiedere spiegazioni a fornirle. Direi che c'è ben poco da commentare. Complimenti.
__________________
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 01-04-2009, 18:13   #15
sim89
 
Messaggi: n/a
Quoto e rinnovo i complimenti, ogni tanto leggo anche in questa sezione
  Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 20:00   #16
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
In pochi mesi sei passato dal chiedere spiegazioni a fornirle. Direi che c'è ben poco da commentare. Complimenti.
Dai, esageratone E poi non sono pochi mesi, sono troppi. Avrei potuto impiegare molto meno tempo.
Queste sono le cose basilari, se non sapessi spiegarle sarebbe grave

Quote:
Quoto e rinnovo i complimenti, ogni tanto leggo anche in questa sezione
Grazie


P.S: rileggendo ogni tanto quel libro, come in questo caso, capisco il perchè di tutte quelle richieste di spiegazioni che facevo: alcune cose per chi non conosce il linguaggio non sono chiare e le dà per scontate, cosi si incappa in dubbi che riguardandoli dopo ti dici: "che stupido".
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 23:35   #17
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Quote:
Originariamente inviato da ~FullSyst3m~ Guarda i messaggi
P.S: rileggendo ogni tanto quel libro, come in questo caso, capisco il perchè di tutte quelle richieste di spiegazioni che facevo: alcune cose per chi non conosce il linguaggio non sono chiare e le dà per scontate, cosi si incappa in dubbi che riguardandoli dopo ti dici: "che stupido".
Hai pienamente ragione, solo che avvolte riesci a trovare la soluzione da solo, altre volte, hai la risposta sotto il naso e non la vedi e poi e appena capisci il concetto, stupido me lo dico per prima e per il dopo....

Ultima modifica di nuvolare : 01-04-2009 alle 23:37.
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 23:45   #18
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
Hai pienamente ragione, solo che avvolte riesci a trovare la soluzione da solo, altre volte, hai la risposta sotto il naso e non la vedi e poi e appena capisci il concetto, stupido me lo dico per prima e per il dopo....
E' questo il problema di non avere libri fatti come si deve. Ma per iniziare da 0 quello è il migliore.
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2009, 16:58   #19
nuvolare
Member
 
Iscritto dal: Jan 2006
Messaggi: 299
Full, mi dicevi di utilizzare un IDE, non vorrei fare confusione ma sono diversi con IDLE che c'è nella cartella di python?

Nel frattempo continuo con i miei studi e sto facendo il paragrafo 12.5, in cui mi dice di fare:
Codice:
>>> class Rettangolo:
	pass

>>> Rett = Rettangolo()
>>> Rett.Largezza = 100.0

>>> Rett.Altezza = 200.0
>>> Rett.AltoSinistra = Punto()
>>> Rett.AltoSinistra.x = 0.0;
>>> Rett.AltoSinistra.y = 0.0;
>>> def TrovaCentro(Rettangolo):
	P = Punto()
	P.x = Rettangolo.AltoSinistra.x + Rettangolo.Larghezza/2.0
	P.y = Rettangolo.AltoSinistra.y + Rettangolo.Altezza/2.0
	return P

>>> Centro = TrovaCentro(Rett)

Traceback (most recent call last):
  File "<pyshell#49>", line 1, in <module>
    Centro = TrovaCentro(Rett)
  File "<pyshell#48>", line 3, in TrovaCentro
    P.x = Rettangolo.AltoSinistra.x + Rettangolo.Larghezza/2.0
AttributeError: Rettangolo instance has no attribute 'Larghezza'
>>>
Invece dovrebbe proseguire restituendomi 50.0, 100.0 ed invece a me da l'errore appena riportato
Il link è questo http://www.python.it/doc/Howtothink/...-it/chap12.htm la parte dei Rettangoli 12.5

Ultima modifica di nuvolare : 02-04-2009 alle 18:10.
nuvolare è offline   Rispondi citando il messaggio o parte di esso
Old 02-04-2009, 18:33   #20
~FullSyst3m~
Senior Member
 
L'Avatar di ~FullSyst3m~
 
Iscritto dal: Mar 2007
Messaggi: 4683
Quote:
Originariamente inviato da nuvolare Guarda i messaggi
Full, mi dicevi di utilizzare un IDE, non vorrei fare confusione ma sono diversi con IDLE che c'è nella cartella di python?

Nel frattempo continuo con i miei studi e sto facendo il paragrafo 12.5, in cui mi dice di fare:
Codice:
>>> class Rettangolo:
	pass

>>> Rett = Rettangolo()
>>> Rett.Largezza = 100.0

>>> Rett.Altezza = 200.0
>>> Rett.AltoSinistra = Punto()
>>> Rett.AltoSinistra.x = 0.0;
>>> Rett.AltoSinistra.y = 0.0;
>>> def TrovaCentro(Rettangolo):
	P = Punto()
	P.x = Rettangolo.AltoSinistra.x + Rettangolo.Larghezza/2.0
	P.y = Rettangolo.AltoSinistra.y + Rettangolo.Altezza/2.0
	return P

>>> Centro = TrovaCentro(Rett)

Traceback (most recent call last):
  File "<pyshell#49>", line 1, in <module>
    Centro = TrovaCentro(Rett)
  File "<pyshell#48>", line 3, in TrovaCentro
    P.x = Rettangolo.AltoSinistra.x + Rettangolo.Larghezza/2.0
AttributeError: Rettangolo instance has no attribute 'Larghezza'
>>>
Invece dovrebbe proseguire restituendomi 50.0, 100.0 ed invece a me da l'errore appena riportato
Il link è questo http://www.python.it/doc/Howtothink/...-it/chap12.htm la parte dei Rettangoli 12.5
Parli dell'IDLE incluso insieme al linguaggio? Anche quello è buono per iniziare, ma ti consiglio di passare direttamente a qualcosa di migliore.

Codice:
>>> Rett.AltoSinistra.x = 0.0;
>>> Rett.AltoSinistra.y = 0.0;
Perchè il punto e virgola?

Comunque ecco il codice, studialo e vedrai dove hai sbagliato:

Codice:
class Rettangolo:
	pass

class Punto:
    pass

Rett = Rettangolo()
Rett.Larghezza = 100
Rett.Altezza = 200

Rett.AltoSinistra = Punto()
Rett.AltoSinistra.x = 0.0
Rett.AltoSinistra.y = 0.0

def TrovaCentro(Rettangolo):
  P = Punto()
  P.x = Rettangolo.AltoSinistra.x + Rettangolo.Larghezza / 2
  P.y = Rettangolo.AltoSinistra.y + Rettangolo.Altezza / 2
  return P

def StampaPunto(Punto):
  print '(' + str(Punto.x) + ', ' + str(Punto.y) + ')'

Centro = TrovaCentro(Rett)
StampaPunto(Centro)
__________________
Firma eliminata e avatar cambiato. Troppa gente giudica il monaco dall'abito.
~FullSyst3m~ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
Blue Origin continua l'espansione: nuove...
Intel prepara un SoC da 700 TOPS: Razor ...
I nuovi Xreal 1 Pro+ arrivano in Europa ...
La GeForce RTX 5090 non è morta: ...
HONOR Win2 si mostra online: potenza da ...
Clamoroso dietrofront di Sony: cancellat...
GeForce NOW, tante novità con l'u...
Il mercato smartphone rallenta nel Q3 20...
Addio al Valve Index: fine della produzi...
Seggiolini auto i-Size da 0 a 12 anni in...
Amazon determina i prezzi di tutto il we...
Robot aspirapolvere ECOVACS in offerta s...
Bodywel F20PRO o DEEPOWER A5? Due fat bi...
Gli agenti AI non diventano pazzi, sono ...
Kenwood Chef XL 6,7L a 239€ su Amazon: u...
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: 19:41.


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