Stampa | Notifica email    
Autore

PROGRAMMARE CON PYTHON

Ultimo Aggiornamento: 10/09/2011 15:56
OFFLINE
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
16/01/2010 18:47
 
Modifica
 
Quota

Per crearne uno da zero senza aprirne uno già fatto?
OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
16/01/2010 19:07
 
Modifica
 
Quota

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
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
16/01/2010 19:11
 
Modifica
 
Quota

Come sempre gentilissimo
OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
16/01/2010 19:30
 
Modifica
 
Quota

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
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
16/01/2010 19:40
 
Modifica
 
Quota

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
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
16/01/2010 20:11
 
Modifica
 
Quota

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
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
16/01/2010 21:32
 
Modifica
 
Quota

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
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
16/01/2010 22:29
 
Modifica
 
Quota

Sì, comunque credo di aver capito anche la seconda
OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
16/01/2010 23:31
 
Modifica
 
Quota

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
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
17/01/2010 07:46
 
Modifica
 
Quota

OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
17/01/2010 12:31
 
Modifica
 
Quota

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
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
17/01/2010 14:35
 
Modifica
 
Quota

Stamani ho fatto dei programmini molto belli x calcolare area, perimetro ecc..., di varie figure geometriche
OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
17/01/2010 16:26
 
Modifica
 
Quota

ok, dopo che hai familiarità con i comandi base puoi fare esercizi sempre più complessi, così si impara.
PS: perchè fai doppio post ?
OFFLINE
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
17/01/2010 16:33
 
Modifica
 
Quota

Perché mi collego con il telefonino e a volte mi capita:(
OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
17/01/2010 19:07
 
Modifica
 
Quota

col telefonino ?? via internet o ti colleghi con una wireless ??
perchè non usi il pc ?
OFFLINE
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
17/01/2010 19:23
 
Modifica
 
Quota

Via internet.Non utilizzo il pc perché abito in un paesino così piccolo che non c'è nemmeno l'ADSL
OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
17/01/2010 21:40
 
Modifica
 
Quota

e come fai a scaricarti i file ?
OFFLINE
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
18/01/2010 07:10
 
Modifica
 
Quota

In un internet point nel paese vicino
OFFLINE
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
19/01/2010 15:12
 
Modifica
 
Quota

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
Post: 8.178
Post: 4.342
Registrato il: 30/06/2008
Città: NAPOLI
Età: 40
Sesso: Maschile
Pontifex maximus
Consul
Team Leader
Imperator
19/01/2010 15:26
 
Modifica
 
Quota

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
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
19/01/2010 17:21
 
Modifica
 
Quota

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
Post: 8.178
Post: 4.342
Registrato il: 30/06/2008
Città: NAPOLI
Età: 40
Sesso: Maschile
Pontifex maximus
Consul
Team Leader
Imperator
19/01/2010 17:35
 
Modifica
 
Quota

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
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
19/01/2010 17:43
 
Modifica
 
Quota

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
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
19/01/2010 17:46
 
Modifica
 
Quota

è 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
Post: 8.178
Post: 4.342
Registrato il: 30/06/2008
Città: NAPOLI
Età: 40
Sesso: Maschile
Pontifex maximus
Consul
Team Leader
Imperator
19/01/2010 17:48
 
Modifica
 
Quota

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
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
19/01/2010 17:50
 
Modifica
 
Quota

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
Post: 8.178
Post: 4.342
Registrato il: 30/06/2008
Città: NAPOLI
Età: 40
Sesso: Maschile
Pontifex maximus
Consul
Team Leader
Imperator
19/01/2010 17:51
 
Modifica
 
Quota

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
Post: 3.393
Post: 2.643
Registrato il: 05/07/2008
Città: PORDENONE
Età: 38
Sesso: Maschile
Gubernator
Consul
Team Modder
19/01/2010 18:23
 
Modifica
 
Quota

si ho già letto, il fatto che prima funzionava poi quando l'ho messo come comando attivabile tramite bottone non andava più...
OFFLINE
Post: 5.956
Post: 1.287
Registrato il: 28/07/2009
Città: NAPOLI
Età: 29
Sesso: Maschile
Civis
Team Modder
19/01/2010 19:15
 
Modifica
 
Quota

scusate che cambia fra un formato .py e uno .exe
OFFLINE
Post: 8.178
Post: 4.342
Registrato il: 30/06/2008
Città: NAPOLI
Età: 40
Sesso: Maschile
Pontifex maximus
Consul
Team Leader
Imperator
19/01/2010 20:25
 
Modifica
 
Quota

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



Nuova Discussione
 | 
Rispondi
Cerca nel forum

Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Crea forum gratis, gestisci la tua comunità! Iscriviti a FreeForumZone
FreeForumZone [v.6.1] - Leggendo la pagina si accettano regolamento e privacy
Tutti gli orari sono GMT+01:00. Adesso sono le 00:39. Versione: Stampabile | Mobile
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com