Jump to content
Nokioteca Forum

[python] Problema In Programma


udm93
 Share

Recommended Posts

Salve raga, ho un piccolo problemino col python! Sto creando il mio primo programma che genera numeri pe il gioco del lotto.

Solo che appena apro lo script questo crasha....non riesco a capire il problema!

Posto il codice per farmi aiutare da voi esperti:

import e32
import appuifw
from appuifw import *
from graphics import *
from key_codes import *
import sys
import string 
import appuifw
import random
import time
from time import ctime
import os
import graphics

directory=sys.path
direcway=directory[0][0:1]
appdir=direcway+":\\system\\apps\\python\\"
img=Image.new((176,208))

def quit():
appuifw.note(u"Alla prossima")
lock.signal()
appuifw.app.set_exit()




def genera():
global generaz
global img,canv
canv.clear(0xffffff)
img=Image.new((176,208))
img=Image.open(appdir+"Extra\\Gener.png")
canv.blit(img)
img.text((5,5),unicode(generaz),font=u"LatinPlain12")
generazio=range(1,91)
generaz = random.choice(generazio)
appuifw.app.menu = [(u"Menu", menuprin)]


def menuprin():
global canv,img	
appuifw.app.menu=[(u"Genera numeri",genera),(u"Esci",quit)]
appuifw.app.title = u'MagicLotto'
img=Image.open(appdir+"Extra\\Menu.png")
canv.blit(img)

def handle_redraw(rect):
global canv,img,generaz
canv.clear(0xffffff)
canv.blit(img,target=(0,0))


lock = e32.Ao_lock()
appuifw.app.screen='full'
canv=appuifw.Canvas(redraw_callback=handle_redraw)
appuifw.app.body=canv
appuifw.app.title = u'MagicLotto'   
menuprin()

Grazie

Link to comment
Condividi su altri siti

Non da alcun errore la shell?

Cmq penso che l'errore sia qui:

def genera():
   global generaz
   global img,canv
   canv.clear(0xffffff)
   img=Image.new((176,208))
   img=Image.open(appdir+"Extra\\Gener.png")
   canv.blit(img)
   img.text((5,5),unicode(generaz),font=u"LatinPlain12")
   generazio=range(1,91)
   generaz = random.choice(generazio)
   appuifw.app.menu = [(u"Menu", menuprin)]

Perchè la variabile generaz non è mai stata dichiarata e li cerchi di "stamparla" a schermo senza che esista. Ioltre in questo modo non vine mai stampato il valore che esce dal random.choice poichè è messo prima della scelta casuale appunto. Modifica il tuo script così, e dimmi se va (evidenzio le mie modifiche):

import e32
import appuifw
from appuifw import *
from graphics import *
from key_codes import *
import sys
import string 
import appuifw
import random
import time
from time import ctime
import os
import graphics

directory=sys.path
direcway=directory[0][0:1]
appdir=direcway+":\\system\\apps\\python\\"
img=Image.new((176,208))

def quit():
   appuifw.note(u"Alla prossima")
   lock.signal()
   appuifw.app.set_exit()




def genera():
   global generaz
   global img,canv
   canv.clear(0xffffff)
   img=Image.new((176,208))
   img=Image.open(appdir+"Extra\\Gener.png")
   canv.blit(img)
   generazio=range(1,91)
   generaz = random.choice(generazio)
[b]    img.text((5,5),unicode(generaz),font=u"LatinPlain12") #ho fatto stampare a schermo la variabile generaz, [u]dopo[/u] che le è stato assegnato un valore da 1 a 90! [/b]
   appuifw.app.menu = [(u"Menu", menuprin)]


def menuprin():
   global canv,img    
   appuifw.app.menu=[(u"Genera numeri",genera),(u"Esci",quit)]
   appuifw.app.title = u'MagicLotto'
   img=Image.open(appdir+"Extra\\Menu.png")
   canv.blit(img)

def handle_redraw(rect):
   global canv,img,generaz
   canv.clear(0xffffff)
   canv.blit(img,target=(0,0))


lock = e32.Ao_lock()
appuifw.app.screen='full'
canv=appuifw.Canvas(redraw_callback=handle_redraw)
[b]generaz=0 #ho creato la variabile, che poi diventa globale[/b]
appuifw.app.body=canv
appuifw.app.title = u'MagicLotto'   
menuprin()

Link to comment
Condividi su altri siti

No,la shell non si chiude e non riporta, a quanto mi pare,nessun errore!

Dice questa frase appena lo compilo (Exception raised while running script MagicLotto.py), puo essere un errore del mio programma(ActivePython)...devo provare a installarlo di nuovo

Se sai qualcosa riferiscimi...grazie

Modificato da udm93
Link to comment
Condividi su altri siti

Salve raga, ho un piccolo problemino col python! Sto creando il mio primo programma che genera numeri pe il gioco del lotto.

Solo che appena apro lo script questo crasha....non riesco a capire il problema!

Posto il codice per farmi aiutare da voi esperti:

import e32
import appuifw
from appuifw import *
from graphics import *
from key_codes import *
import sys
import string 
import appuifw
import random
import time
from time import ctime
import os
import graphics

directory=sys.path
direcway=directory[0][0:1]
appdir=direcway+":\\system\\apps\\python\\"
img=Image.new((176,208))

def quit():
appuifw.note(u"Alla prossima")
lock.signal()
appuifw.app.set_exit()




def genera():
global generaz
global img,canv
canv.clear(0xffffff)
img=Image.new((176,208))
img=Image.open(appdir+"Extra\\Gener.png")
canv.blit(img)
img.text((5,5),unicode(generaz),font=u"LatinPlain12")
generazio=range(1,91)
generaz = random.choice(generazio)
appuifw.app.menu = [(u"Menu", menuprin)]


def menuprin():
global canv,img	
appuifw.app.menu=[(u"Genera numeri",genera),(u"Esci",quit)]
appuifw.app.title = u'MagicLotto'
img=Image.open(appdir+"Extra\\Menu.png")
canv.blit(img)

def handle_redraw(rect):
global canv,img,generaz
canv.clear(0xffffff)
canv.blit(img,target=(0,0))


lock = e32.Ao_lock()
appuifw.app.screen='full'
canv=appuifw.Canvas(redraw_callback=handle_redraw)
appuifw.app.body=canv
appuifw.app.title = u'MagicLotto'   
menuprin()

Grazie

ciao...io nn so il codice python però un'idea del perchè si apre e si chiude subito ce l'avrei...Io conosco altri tipi di linguaggi ed è capitato pure a me questo problema all'inizio....secondo me dovresti mettere un comando che ti chieda di premere che ne so un pulsante qualsiasi del cell x continuare....ti faccio un es...

se il codice lo scrivo così il programma mi si apre e si chiude subito

linguaggio C

#include <stdio.h> //librerie

#include <iosteam>

using namespace std; //mi permette di usare cout (stampa a video) e cin (leggi da tastiera)

int main (){

#################### // facciamo finta che sono le istruzioni del programma

#################### //

return 0;

}

se invece lo scrivo così il prog aspetta una mia risposta per uscire

#include <stdio.h> //librerie

#include <iosteam>

using namespace std; //mi permette di usarre cout (stampa) e cin (leggi da tastiera)

int main (){

int numero; //variable intera di nome numero

#################### // facciamo finta che sono le istruzioni del programma

#################### //

cout << "premere un numero per uscire";

cin << numero;

return 0;

}

prova ad aggiungere un'istruzione simile...

Link to comment
Condividi su altri siti

No,la shell non si chiude e non riporta, a quanto mi pare,nessun errore!

Dice questa frase appena lo compilo (Exception raised while running script MagicLotto.py), puo essere un errore del mio programma(ActivePython)...devo provare a installarlo di nuovo

Se sai qualcosa riferiscimi...grazie

activepython? ma stai compilando quel sorgente per il cellulare sul pc?

non si può, o almeno non con activepython (per quanto ne so o.O)

Link to comment
Condividi su altri siti

mi permetto di suggerire di lasciar perdere il progetto: nei numeri del lotto non c'e' nessuna logica, è scientificamente impossibile e inutile cercare di trovare un algoritmo per prevedere le prossime uscite sulla base delle estrazioni "storiche".

Se ti piace scoprire relazioni nascoste, criptiche e segreti tra i numeri, mettiti a indagare sui file che contengono i messaggi Symbian in \system\mail : li' una struttura C'E' di sicuro, e ti saremmo tutti grati se ce la dicessi.... Come anche quella degli eseguibili che stanno in ROM, che non possono essere spostati in RAM perche' non rilocabili...

Link to comment
Condividi su altri siti

Please sign in to comment

You will be able to leave a comment after signing in



Accedi Ora
 Share

×
×
  • Crea Nuovo...

Informazione Importante

Questo sito utilizza i cookie per analisi, contenuti personalizzati e pubblicità. Continuando la navigazione, accetti l'utilizzo dei cookie da parte nostra | Privacy Policy