Forum
>>
Principianti
>>
modulo Graphics RISOLTO
Pagina: 1 2 Avanti
Esegui il login per scrivere una risposta.
Scritto da SalvCai |
2018-01-03 11:26:20 - modulo Graphics RISOLTO
|
Buongiorno ho un problema con l'esecuzione di un programma che ho
digitato come esercizio dal mio libro di testo che simula il lancio di dadi il codice è il seguente DIE_SIZE = 60 def main() : from graphics import GraphicsWindow canvas = configureWindow(DIE_SIZE * 7) rollDice(canvas, DIE_SIZE) while rollAgain() : rollDIce(canvas, SIZE_DIE) def configureWindow(winSize) : win = GraphicsWindow(winSize, winSize) canvas = win.canvas() canvas.setBackground(0,128,0) return canvas def rollAgain() : userInput = input(" ...... Q to quit") if userInput.upper() == "Q" : return False else : return True def rollDice(canvas, size) : canvas.clear() xOffset = size yOffset = size for die in range (5) : dieValue = randint(1,6) drawDie(canvas, xOffset, yOffset, size, dieValue) if die == 2 : xOffset = size * 2 yOffset = size * 3 else : xOffset = xOffset + size * 2 def drawDie(canvas, x, y, size, dieValue) : dotSize = size // 5 offset1 = dotSize // 2 offset2 = dotSize // 2 * 4 offset3 = dotSize // 2 * 7 canvas.setFill("white") canvas.setOutline("black") canvas.setLineWidth(2) canvas.drawRect(x, y, size, size) canvas.setColor("black") canvas.setLineWidth(1) if dieValue == 1 or dieValue == 3 or dieValue == 5: canvas.drawOval(x + offset2, y + offset2, dotsize, dotsize) elif dieValue == 6 : canvas.drawOval(x + offset1, y + offset2, dotSize, dotSize) canvas.drawOval(x + offset3, y + offset2, dotSize, dotSize) if dieValue >= 2 : canvas.drawOval(x + offset1, y + offset1, dotSize, dotSize) canvas.drawOval(x + offset3, y + offset3, dotSize, dotSize) if dieValue >= 4 : canvas.drawOval(x + offset1, y + offset3, dotSize, dotSize) canvas.drawOval(x + offset3, y + offset1, dotSize, dotSize) main () quando lo mando in esecuzione mi appare questo risultato Traceback (most recent call last): File "C:/Users/salvatore&fabio/Desktop/file python/rolldice.py", line 63, in <module> main () File "C:/Users/salvatore&fabio/Desktop/file python/rolldice.py", line 5, in main from graphics import GraphicsWindow ModuleNotFoundError: No module named 'graphics' come posso fare a risolverlo? uso win10 e Python 3.6.3 grazie a chi mi risponderà --- Ultima modifica di SalvCai in data 2018-01-08 16:59:40 --- |
|
Scritto da Daniele aka Palmux |
2018-01-03 14:33:49 - Re: modulo Graphics
|
Ciao caro, prima di tutto buon anno.
Ti ricordo che quando metti del codice Python sul forum, essendo la sintassi un elemento portante del linguaggio, di utilizzare sempre il tasto code, che trovi subito prima della tavolozza dei colori in modalità inserimento testo, diciamo così, come vedi qui sotto. Veniamo a noi, hai seguito questo per l'installazione del modulo? Cya |
|
Scritto da SalvCai |
2018-01-03 17:16:23 - Re: modulo Graphics
|
Ciao Daniele grazie per la replica .... sono nuovo del mondo python e sto cercando nei ritagli di tempo professionali a lavorarci un po su .... ora sono fuori sede ma in serata proverò a reistallare python3 e vedere cosa succede ti terrò aggiornato.
Grazie ancora Salvatore |
|
Scritto da SalvCai |
2018-01-03 17:17:07 - Re: modulo Graphics
|
Ah dimenticavo BUON ANNO A TE
|
|
Scritto da EL DIABLO |
2018-01-03 19:20:44 - Re: modulo Graphics
|
Ciao BUON ANNO A TUTTI,
ho il tuo stesso libro quindi sembra che quest'anno tu sia molto fortunato. In quale cartella hai inserito il modulo graphics.py? |
|
Scritto da SalvCai |
2018-01-04 15:13:36 - Re: modulo Graphics
|
Ciao Daniele nonostante la procedura che mi hai indicato tu non riesco a far funzionare il codice, ma grazie del tuo supporto, cmq il modulo graphics l'ho inserito nella directory python36
Salvatore |
|
Scritto da EL DIABLO |
2018-01-04 18:42:57 - Re: modulo Graphics
|
>>> import sys >>> sys.path E' molto semplice risolvere il problema.
Devi inserire il modulo graphics in una delle cartelle che vengono visualizzate. Una volta fatto questo purtroppo il programma non verrà eseguito perché devi correggere alcuni errori. Non hai importato randint dal modulo random per esempio. Poi hai commesso due errori di digitazione nel nome di variabili. Inoltre il modulo graphics deve essere importato nelle prime righe del programma. |
|
Scritto da SalvCai |
2018-01-04 21:02:49 - Re: modulo Graphics
|
ciao questo è il codice ma io non trovo proprio il modo di farlo funzionare DIE_SIZE = 60 from graphics import * def configureWindow(winSize) : win = GraphWin("DADO",winSize, winSize) canvas = win.canvas() canvas.setBackground(0,128,0) return canvas def main() : canvas = configureWindow(DIE_SIZE * 7) rollDice(canvas, DIE_SIZE) while rollAgain() : rollDIce(canvas, SIZE_DIE) def rollAgain() : userInput = input(" ...... Q to quit") if userInput.upper() == "Q" : return False else : return True def rollDice(canvas, size) : canvas.clear() xOffset = size yOffset = size for die in range (5) : dieValue = randint(1,6) drawDie(canvas, xOffset, yOffset, size, dieValue) if die == 2 : xOffset = size * 2 yOffset = size * 3 else : xOffset = xOffset + size * 2 def drawDie(canvas, x, y, size, dieValue) : dotSize = size // 5 offset1 = dotSize // 2 offset2 = dotSize // 2 * 4 offset3 = dotSize // 2 * 7 canvas.setFill("white") canvas.setOutline("black") canvas.setLineWidth(2) canvas.drawRect(x, y, size, size) canvas.setColor("black") canvas.setLineWidth(1) if dieValue == 1 or dieValue == 3 or dieValue == 5: canvas.drawOval(x + offset2, y + offset2, dotsize, dotsize) elif dieValue == 6 : canvas.drawOval(x + offset1, y + offset2, dotSize, dotSize) canvas.drawOval(x + offset3, y + offset2, dotSize, dotSize) if dieValue >= 2 : canvas.drawOval(x + offset1, y + offset1, dotSize, dotSize) canvas.drawOval(x + offset3, y + offset3, dotSize, dotSize) if dieValue >= 4 : canvas.drawOval(x + offset1, y + offset3, dotSize, dotSize) canvas.drawOval(x + offset3, y + offset1, dotSize, dotSize) main () questo è ciò che ottengo in output sull'idle Traceback (most recent call last): File "C:\Users\salvatore&fabio\Desktop\file python\rolldice.py", line 63, in <module> main () File "C:\Users\salvatore&fabio\Desktop\file python\rolldice.py", line 12, in main canvas = configureWindow(DIE_SIZE * 7) File "C:\Users\salvatore&fabio\Desktop\file python\rolldice.py", line 7, in configureWindow canvas = win.canvas() AttributeError: 'GraphWin' object has no attribute 'canvas' sai dirmi come fare adesso sono proprio curioso di vedere come va .... ho controllato il modulo graphics è nella directory dove deve essere leggendo anche la documentazione Grazie per il tuo tempo Salvatore |
|
Scritto da EL DIABLO |
2018-01-04 21:44:32 - Re: modulo Graphics
|
Intanto correggi questa riga
win = GraphWin("DADO",winSize, winSize)poi ti ho detto di importare randint dal modulo random. Infine devi correggere due errori di digitazione del nome di variabili. Controlla attentamente, non è facile individuarli. |
|
Scritto da SalvCai |
2018-01-05 10:07:20 - Re: modulo Graphics
|
scusa avevo sbagliato copia e incolla
buona giornata S! |
Pagina: 1 2 Avanti
Esegui il login per scrivere una risposta.