È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

De Bello Mundi Forum

PROGRAMMARE CON PYTHON

  • Messaggi
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 16/01/2010 18:47
    Per crearne uno da zero senza aprirne uno già fatto?
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 16/01/2010 19:07
    www.java2s.com/Code/Python/CatalogPython.htm
    qui trovi tanti esempi.
    Per fare dei programi ti serve solo notepad e il python installato, niente di più !
    Scrivi il codice dentro un file vuoto di testo e rinominalo esempio test.py invece di test.txt, vedrai che l'icona cambia perchè python lo riconosce. se ci fai doppio clic sul file il programma parte, niente di più facile.
    Il problema è sapere cosa scrivere, provo a vedere di farti un esempio.
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 16/01/2010 19:11
    Come sempre gentilissimo
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 16/01/2010 19:30
    ESEMPIO BANALE
    esempio del comendo "print" cioè scrive qualcosa:
    Io non so come si fà in Python ma in C cera un comando System("PAUSE") per non far terminare il programma prima di aver premuto un tasto, così potevi vedere quello che faceva.
    Allora scrivi con notepad questo e poi rinomina il file in .py

    se fai doppio clic il programma scrive BLABLABLA e poi esce subito, per vedere quello che fà io al momento faccio così:
    vai su start, esegui, cmd, premi invio.

    Questo è il prot dei comandi di windows da cui puoi far eseguire tutti i programmi, trascina il nostro test.py all'interno e premi invio:

    il programmino che avevo fatto io non lo eseguo così perchè a me interessa solo che mi crei un file di testo, non fa vedere niente ma per te hai bisogno di un esempio pratico.

    dopo che il programma ha eseguito l'operazione di BLABLAzione esce ma così vedi quello che fà.
    Ovviamente al posto di print BLABLABLA puoi scriverci tutto quello che vuoi, puoi farti anche un programma che ti chiede 2 numeri e ti restituisce la somma...
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 16/01/2010 19:40
    ESEMPIO CICLO WHILE
    se fai lo stesso procedimento per il mio file non vedrai niente perchè non ho messo nessun print, a volte li utilizzo per vedere dove si blocca il programma, specialmente nei cicli, ci metto un Print e poi il valore di una varabile che aumenta di uno ad ogni ciclo.

    prova questo:


    i=0
    while i<10:
    print ("CICLO n'%d\n" % i)
    i=i+1
    print "fine del ciclo"



    te lo metto anche in allegato, questo è la base base base di un ciclo while

    SPIEGAZIONE:

    i=0 dichiaro una variabile di nome i e gli dò il valore 0
    while i<10: = fai questo (sotto) fintanto che i è minore di 10
    print ("CICLO n'%d\n" % i) scivi "CICLO" e un numero (la sintassi è %d, su internet ne trovi altre...) \n è il carattere a capo (\t è il tab ecc...) il numero %d corrisponde alla variabile i)
    i=i+1 il valore (i+1) va a finire dentro la stessa i quindi la sostituisce.
    quando arriva a 9 scrive "CICLO n'9" poi la aumenta di uno e il ciclo esce perchè la condizione i<10 non è più verificata, infatti il programma non scrive CICLO n'10.
    finito il ciclo scrive l'ultimo print
    [Modificato da johnwhile 16/01/2010 19:50]
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 16/01/2010 20:11
    Il primo l'ho capito, ora vedrò di analizzare il secondo che mi sembra più difficile:)

    Il prompt dei comandi invece lo conosco già, anche se per ora l'ho usato solo per creare file .bat(quelli dei mod)
    [Modificato da boboav 16/01/2010 20:14]
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 16/01/2010 21:32
    beh, adesso non posso farti delle lezioni ma se vai su internet trovi tanti tutorial, ti consiglio di leggerti prima un pò di teoria altrimenti anche le operazioni base creerebbero difficoltà.
    Qui c'è tutto tradotto in italiano, ma alcune cose le ho tranquillamente tralasciate
    docs.python.it/html/tut/
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 16/01/2010 22:29
    Sì, comunque credo di aver capito anche la seconda
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 16/01/2010 23:31
    cioè riesci a fare quello che ho scritto ? questo è l'importante, poi il resto è "solo" la conoscenza di tutte le funzioni e il loro utilizzo.
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 17/01/2010 07:46
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 17/01/2010 12:31
    vedi, adesso l'ho sistemato e ho messo un ciclo while da 16 invece che leggere e memorizzare 16 numeri. Infatti, adesso nel ciclo di 16 numeri, legge un numero alla volta e lo scrive. Quindi il programma utilizza UNA SOLA variabile mentre prima utilizzava 16 variabili che venivano prima memorizzate poi trascritte.
    Questo è un risparmio di ram del computer che per programmini del genere non si vede, la cpu invece fa sempre un'operazione alla volta che sia un ciclo o memorizzare 16 variabili, quindi dal punto di vista della velocità non cambia. Non ho fatto informatica ma penso in linea di principio sia così.
    Proverò a fare adesso la versione per convertire il testo in binario, poi volevo imparare a fare quelle bellisime finestre stile windows
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 17/01/2010 14:35
    Stamani ho fatto dei programmini molto belli x calcolare area, perimetro ecc..., di varie figure geometriche
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 17/01/2010 16:26
    ok, dopo che hai familiarità con i comandi base puoi fare esercizi sempre più complessi, così si impara.
    PS: perchè fai doppio post ?
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 17/01/2010 16:33
    Perché mi collego con il telefonino e a volte mi capita:(
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 17/01/2010 19:07
    col telefonino ?? via internet o ti colleghi con una wireless ??
    perchè non usi il pc ?
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 17/01/2010 19:23
    Via internet.Non utilizzo il pc perché abito in un paesino così piccolo che non c'è nemmeno l'ADSL
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 17/01/2010 21:40
    e come fai a scaricarti i file ?
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 18/01/2010 07:10
    In un internet point nel paese vicino
  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 15:12
    rhyamo, ho provato a fare un po di test con i bottoni di Python, funziona al 80% cioè non capisco perchè (lo stesso programma) non mi lavora come prima.
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 15:26
    qual è il problema?

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 17:21
    come qual'è ? non funziona il programma !
    Cioè alcune funzioni che prendono i numeri dal file binario non funzionano (e lo scrive anche nel cmd.exe) eppure ho solo aggiunto il bottone e collegato la funzione
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 17:35
    hai provato a usare il debug?

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 17:43
    il debug lo fà in automatico nella schermata di cmd.exe, ma lo puoi vedere anche tè...

    Microsoft Windows XP [Versione 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\Documents and Settings\Studenti>"C:\Documents and Settings\Studenti\Documenti
    \Utenti\j\test3.py"
    Exception in Tkinter callback
    Traceback (most recent call last):
    File "C:\Documents and Settings\Studenti\Documenti\Utenti\j\PortablePython_1.1
    _py2.5.4\App\lib\lib-tk\Tkinter.py", line 1414, in __call__
    return self.func(*args)
    File "C:\Documents and Settings\Studenti\Documenti\Utenti\j\test3.py", line 14
    2, in bin2txt
    num = getfloat(fileinput)
    File "C:\Documents and Settings\Studenti\Documenti\Utenti\j\test3.py", line 53
    , in getfloat
    (thefloat,) = struct.unpack( 'f', fidin.read(4) ) # 'f' is float.

    File "C:\Documents and Settings\Studenti\Documenti\Utenti\j\PortablePython_1.1
    _py2.5.4\App\lib\struct.py", line 87, in unpack
    return o.unpack(s)
    error: unpack requires a string argument of length 4

  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 17:46
    è che probabilmente ho sbagliato qualcosa sulle funzioni solo che non sò che pesci pigliare....
    def bin2txt() :
    ....
    return
    


    cioè nel bottone chiamo questa funzione, prima la funzione non era chiamata quindi non avvo messo questo def bin2txt... cioè mi sembra non funzionino gli altri def getfloat( fidin ) cioè quelli che prendono i dati dal file binario.
    La sintassi dice OK ma ci sarà qualche cosa di illecito che ho fatto...
    [Modificato da johnwhile 19/01/2010 17:49]
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 17:48
    adesso non ho tempo, ma dando un'occhiata veloce il problema è in quello struct.unpack. cosa dovrebbe fare?? forse gli hai passato meno di 4 byte perchè sei arrivato alla fine del file???

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 17:50
    cioè se guardi il vecchio programma noterai che ho solo raggruppato tutta la procedura in una funzione def bin2txt() : per farla partire da comando del bottone.
    Quindi se prima funzionava non capisco perchè... qui sei tu l'informatico :-P
    [Modificato da johnwhile 19/01/2010 17:50]
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 17:51
    struct.unpack(fmt, string)¶
    Unpack the string (presumably packed by pack(fmt, ...)) according to the given format. The result is a tuple even if it contains exactly one item. The string must contain exactly the amount of data required by the format (len(string) must equal calcsize(fmt)).

    [Modificato da rhaymo 19/01/2010 17:51]

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



  • OFFLINE
    johnwhile
    Post: 3.393
    Post: 2.643
    Registrato il: 05/07/2008
    Città: PORDENONE
    Età: 38
    Sesso: Maschile
    Gubernator
    Consul
    Team Modder
    00 19/01/2010 18:23
    si ho già letto, il fatto che prima funzionava poi quando l'ho messo come comando attivabile tramite bottone non andava più...
  • OFFLINE
    boboav
    Post: 5.956
    Post: 1.287
    Registrato il: 28/07/2009
    Città: NAPOLI
    Età: 29
    Sesso: Maschile
    Civis
    Team Modder
    00 19/01/2010 19:15
    scusate che cambia fra un formato .py e uno .exe
  • OFFLINE
    rhaymo
    Post: 8.178
    Post: 4.342
    Registrato il: 30/06/2008
    Città: NAPOLI
    Età: 40
    Sesso: Maschile
    Pontifex maximus
    Consul
    Team Leader
    Imperator
    00 19/01/2010 20:25
    allora, tanto per cominciare, quel messaggio che appare sulla console non ha nulla a che vedere con il debug.

    Il debug ti permette di eseguire un'istruzione per volta ogni volta che premi un tasto, e di visualizzare il contenuto delle variabili, per capire in tempo real cosa sta accadendo.
    Ecco di cosa parlo:

    pythonconquerstheuniverse.wordpress.com/category/the-python-d...

    i comandi più importanti sono "n" e "p".

    "Ci vuole la carne nelle salsicce, il fumo se ne esce!" (proverbio)
    "Il potere é quando abbiamo ogni giustificazione per uccidere e non lo facciamo " (Schindler's list)



    Peninsula Italica Fan



2