Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
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


Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Roscosmos aggiorna le tempistiche per la...
Confermato il ritardo delle missioni rob...
L'Intelligenza Artificiale ora può...
Il data center del futuro secondo Huawei...
Spesa a domicilio senza conducente: robo...
Satoshi Nakamoto ha finalmente un volto?...
La Corea del Sud taglia fuori i bus elet...
GoPro taglia ancora: licenziato il 23% d...
Muse S Athena: la fascia che ti legge ne...
PS5 Pro e PSSR 2.0: tutti i giochi compa...
Dimensity 9600 Pro promette prestazioni ...
BMW i7 2026 adotta celle cilindriche Gen...
Cyberpunk 2077 si aggiorna su PS5 Pro co...
Valve porta Steam Link su Vision Pro per...
Google Maps: ufficiali 3 novità c...
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:03.


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