RicPol
Profilo di
Nome | RicPol |
---|---|
Indirizzo email | ric.pol@libero.it |
Avatar | |
Messaggi | 545 |
Firma forum | |
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
-
- 2021-10-17 12:55:28
- Re: Script innestati
- Forum >> Principianti
-
non sono sicuro di quel link che hai mandato... a me si apre una cosa che non riesco bene a capire... boh.
Comunque sì, il problema dei video su YT è che... peschi a caso cose di qualità molto varia (eufemismo).
Ora, non dico che non si possano fare accrocchi molto complicati in quel modo lì, ma poi il problema è che hai errori strani come quello che riporti... e per carità, uno potrebbe anche mettersi lì a spiegare nel dettaglio come mai succede quello che succede, ci metterebbe tre o quattro ore, e alla fine servirebbe a ben poco. Se non hai chiaro l'inquadramento generale di che cosa è un modulo, che cosa è un modulo eseguibile (uno script), come funzionano gli "import"... tutto poi diventa un gioco a indovinare.
Il consiglio che provo sempre a dare in questi casi (e che non viene mai seguito, intendiamoci) è di lasciar perdere tkinter, lasciar perdere i database, lasciar perdere l'architettura del codice... e studiare partendo dalle basi, con calma, seguendo un buon libro (il Lutz è sempre una scelta raccomandabile).
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-10-15 23:01:36
- Re: Script innestati
- Forum >> Principianti
-
qui mancano i rientri, quindi non si capisce benissimo quello che vuol dire quel codice... ma sembra un pasticcio completo... guarda, gli import non si usano semplicemente così. Quello che puoi fare è definire una classe in un modulo, e poi importarla, istanziarla e usarla in un altro modulo... questo sicuramente. Ma avere due moduli che si importano a vicenda... ciascuno che avvia e poi ferma un mainloop... no, proprio questo non è il modo sano di scrivere del codice. Ti suggerisco di lavorare prima con le basi di python, studiando su un buon libro (il Lutz è sempre una scelta valida), e soltanto dopo fare qualcosa con tkinter e le gui in generale.
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-10-14 19:36:00
- Re: Tradurre un piccolo script Pyt in vb6
- Forum >> Programmazione Python >> Scripting
-
come ti ho detto, non è che quello script faccia cose straordinarie. Si limita a prendere una stringa di testo e spedirla su un socket. La stringa è composta con quel "str(no)" che è semplicemente il numero che passi quando invochi lo script dalla shell. Per il resto, la stringa di per sé è chiaramente un comando specifico della centralina che stai cercando di pilotare, e questo con python non c'entra nulla... devi vedere com'è la sintassi dei comandi di quella centralina. Per i resto, lo script è commentato praticamente riga per riga... (tutte le righe che iniziano per # sono dei commenti... ci sono anche delle righe di codice commentate che ovviamente rappresentano dei tentativi alternativi).
Al limite puoi chiedere aiuto su un forum di vb per capire come si fa questo in vb, ma se dici che programmi in vb, questo probabilmente lo sai già fare...
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-10-13 10:19:50
- Re: Tradurre un piccolo script Pyt in vb6
- Forum >> Programmazione Python >> Scripting
-
Ma PT sta per Python?
Comunque come vedi non è che quello script faccia delle cose molto fantasiose e specifiche... penso che googlando qualcosa come "VB socket example" e troverai un miliardo di esempi in VB pronti da copiare.
Ma piuttosto, non capisco perché, visto che hai uno script in Python (e questo è un forum Python!) non usi Python... al limite potresti perfino non installarlo, e usare qualcosa come winpython in versione portable...
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-10-11 11:54:44
- Re: pandas non funziona con Python 3.10
- Forum >> Programmazione Python >> Calcolo scientifico
-
direi proprio di sì... al limite, tieni d'occhio il link di pypi che ti ho dato sopra...
(del resto, vedo adesso che anche numpy è nella stessa situazione, quindi devi aspettare che tutta la filiera si aggiorni... del resto la 3.10 è uscita solo qualche giorno fa)
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-10-11 10:27:06
- Re: pandas non funziona con Python 3.10
- Forum >> Programmazione Python >> Calcolo scientifico
-
beh su pypi al momento vedo solo le wheel per linux https://pypi.org/project/pandas/#files
dal che deduco che sei su windows :-)
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-10-07 16:19:57
- Python 3.10 è tra noi...
- Forum >> Annunci
-
https://pythoninwindows.blogspot.com/2021/10/e-arrivato-quel-periodo-dellanno.html
opinioni e riflessioni, per chi è (moderatamente) curioso
Nel frattempo segnalo che la traduzione del tutorial resta aggiornata e in sincrono con la nuova versione: https://pytutorial-it.readthedocs.io/
E anche il mio libro su "Python in Windows" è stato aggiornato: se lo avete già, potete scaricare l'aggiornamento gratuitamente (link in firma).
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-10-03 20:53:32
- Re: Aprire tutti i file in una cartella
- Forum >> Programmazione Python >> Files e Directory
-
beh sono due problemi distinti... Elencare i file di una directory (non "cartella" please) è compito di "os.listdir".
Una volta che hai una lista con tutti i file, puoi ciclarci sopra (eventualmente saltando quelli che non sono pdf) e a questo punto si pone il problema di aprirli... Se non ti importa della cross-compatibilità e vuoi restare su windows, allora il compito di "aprire un file con il programma predefinito" spetta a ShellExecute (una delle api di windows). Per fortuna Python ha un bel wrapper a ShellExecute, ovvero "os.startfile". Questo dovrebbe risolverti il problema.
Tieni conto che, ovviamente, se l'estensione non è registrata nel sistema operativo, os.startfile fallirà. Ma, finché si tratta di *.pdf, non dovresti avere problemi...
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-09-30 22:07:39
- Re: Creazione Programma Python
- Forum >> Programmazione Python >> Web e Reti
- su che libro stai studiando? Il Lutz è sempre una scelta consigliabile.https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog
-
- 2021-09-23 12:28:49
- Re: Capire quando usare la parola chiave "global"
- Forum >> Principianti
-
Non è facile scrivere una risposta rapida su un argomento così complesso. L'architettura concettuale che ci sta dietro è piuttosto sofisticata. La cosa migliore è sempre studiare con un buon libro sottomano. Ricordo che il Lutz faceva un buon lavoro a spiegare queste cose.
Una cosa che dovresti leggere è la sezione relativa del tutorial ufficiale, visto che (oltre tutto) è disponibile in traduzione italiana (fatta indovina da chi): https://pytutorial-it.readthedocs.io/it/python3.9/classes.html#scope-e-namespace-in-python
E' molto densa, ma se riesci a digerire lentamente parola per parola, è anche molto molto utile.
Detto questo, la risposta rapida alla tua domanda è: preferibilmente, non usare mai global. Fai solo pasticci con i namespace, e non è questo il modo in cui si dovrebbero fare le cose.
Global segnala che, all'interno del blocco in cui è dichiarato (per esempio una funzione), i riferimenti a un nome sono da intendersi riferiti allo spazio globale, non allo spazio locale del blocco. Questo serve, in pratica, per ri-assegnare un valore a un nome che vive nello spazio globale, dall'interno di uno spazio locale.
L'esempio canonico è questo: ovviamente non c'è nessun problema a *leggere* il valore di un nome definito nello spazio globale, da dentro uno spazio locale:
>>> n = 42 >>> def f(): ... return n - 2 ... >>> f() 40
Tuttavia non puoi ri-assegnare (*scrivere*) un nome globale da dentro uno spazio locale:
>>> n = 42 >>> def f(): ... n = 10 ... >>> f() >>> n 42
A meno che, appunto, tu non usi global per dire che il nome che usi nello spazio locale deve intendersi come riferito allo spazio globale, non a quello locale.
>>> n = 42 >>> def f(): ... global n ... n = 10 ... >>> f() >>> n 10
Ovviamente questa è una pessima idea, ma appunto, alla brutta con global si può fare.
Ora però, mi raccomando, mi raccomando, mi raccomando: NON limitarti a questa ricettina da copincollare per dire che hai "capito" global, perché davvero, i nomi, i namespace, gli scope in Python sono complessi e davvero dovresti seguire un buon manuale... altrimenti hai solo superato una collinetta ma vai a sbattere dieci metri più in là (non ti dico le classi...)
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog