Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - nuzzopippo

Pagine: [1] 2 3 ... 20
1
Base / Re:Semplice curiosità su python
« il: Luglio 28, 2020, 07:22 »
Ciao @superslick_67

... Nel momento in cui creo una lista (quella in questione è: numeri = [0,1,2,3,4]) e richiamo dalla shell il comando 'print(numeri[0-1])' la shell stampa il numero 4. Questo comportamento mi ha fatto incuriosire ...

Basta leggere qua, punto 8.2.

Le liste possono essere lette tramite indice, nei due sensi, con indice da 0 a len(lista)-1 per procedere dal primo all'ultimo elemento, con indice negativo, che parte da "-1" per l'ultimo elemento a - len(lista) per il primo.
>>> numeri = [0, 1, 2, 3, 4]
>>> for i in range(-1, -(len(numeri) + 1), -1):
print(i, ' - ', numeri[i])


-1  -  4
-2  -  3
-3  -  2
-4  -  1
-5  -  0
>>> 


Quando Tu inserisci indice "0 - 1" stai inserendo "-1"
>>> 0 - 1
-1

quindi ...
[Edit] Corretto il codice del for, dormo ancora ;)

2
Calcolo scientifico / Re:Errore Programma Python
« il: Luglio 27, 2020, 10:44 »
Grazie mille per la risposta, ma se non inizializzo la variabile x1 ad esempio, quando va a fare il calcolo mi dice che non riconosce x1

La qual cosa non esclude che avresti ugualmente errore per utilizzo di variabile non definita
>>> print(a)
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    print(a)
NameError: name 'a' is not defined
>>>

Devi tener presente le possibili casistiche di insussistenza e prevederle nell'algoritmo da applicare, le operazioni così come da Te poste non funzionerebbero nemmeno in caso di calcolo manuale in caso delle x non definite o nulle.

3
Grazie della segnalazione dei wheel negli Extra, @Ric, in effetti risolve facilitando enormemente il "problema".

Da buon "linuxaro", non mi aveva neanche sfiorato il pensiero potessero esistere, trovo più "normale" dovermi sbattere su compilazioni varie, istintivamente devo aver attribuito le wheel ai "soli" sistemi windows, cosa che non è. Messo risolto circa il "problema" di per se.

Riguardo la "malefica pagina", mi sono bloccato proprio sullo step 4, nella creazione della wheel vengono correttamente installati i pacchetti sussidiari richiesti (numpy etc.) poi ben eseguito il make dei sorgenti delle wx e si pianta sul build.
Controllato il pip, era quello "giusto" e, comunque, si verifica l'analoga situazione anche lanciando con "-m pip", il problema non è li e nemmeno nelle librerie di sistema genericamente indicate all'inizio pagina ... ho il sospetto che bisogna integrare, a livello di s.o., delle ulteriori librerie specifiche per la versione 3.8 di python, quali supporto per compilazione o altro, ma debbo trovare il tempo per approfondire la faccenda, magari dopo l'estate mi ci metto e se risolvo batto un colpo.

4
Calcolo scientifico / Re:Errore Programma Python
« il: Luglio 27, 2020, 08:08 »
...
Sto uscendo pazzo, perché non riesco a capire dove sbaglio in questo programma.. ...

In inizializzazione :

    x1 = 0
    x2 = 0

Tali valori non vengono "variati" dall'input, nel caso "Van Laar (1)" hai :
... (A12 * x1) / (A21 * x2) ...

"A21 * 0 = 0" , quindi stai tentando di dividere un numero per Zero ... non è che un programma sottilizzi sul fatto che, in effetti, stai facendo "zero diviso zero" ;)

P.S. Ben venuto :)

5
Tkinter / Re:PILLOW, ImageTk
« il: Luglio 27, 2020, 07:33 »
...
Sono riuscito a far visualizzare un'immagine solo quando il codice era stato scritto al livello globale mentre se cerco di visualizzare avemdo scritto il codice al livello locale mi crea solamente l'apposito spazio dedicato alla figura completamente bianco.
Inoltre ho scoperto anche un modo per possiamo dire "fregare" questo bug...

Ciao @Gianpatrizio, Ti sei imbattuto in una caratteristica del framework tkinter (ben conosciuta) che ha spiazzato anche me a suo tempo, non è un bug, il fatto è che tkinter non "memorizza" i dati di una eventuale "risorsa" assegnata ad un widget, non dimentichiamo che tkinter è piuttosto "spartano".
La conseguenza è che quando Tu definisci una immagine in una funzione e la assegni ad un widget l'immagine esisterà solo all'interno della funzione, una volta uscita dalla funzione ti troverai il widget, memorizzato quale oggetto assegnato al "frame" della finestra ma l'immagine sarà persa (cerca info sullo "scope" delle variabili) e rimarrà solo lo spazio (vuoto) a lei riservato.

Pertanto, nel Tuo caso, devi giocoforza definire le immagini "da conservare" a livello globale ed utilizzarle come tali, ciò risolverà il Tuo problema.

... ma ... perdonami se approfitto di questo Tuo post per lanciare un messaggio, ma la modalità "imperativa" (Tuo primo stralcio) o la modalità "funzionale" (2° stralcio) mal si prestano a programmare interfacce grafiche, pur essendo paradigmi ampiamente utilizzati per piccoli esempi mirati deviano gli utenti dalla "giusta" modalità da adottare per affrontare l'argomento "GUI", ossia la programmazione ad oggetti, condita da concetti sulla programmazione ad eventi ... intendiamoci, anche senza utilizzare la OOP qualcosa si può fare, centuplicando la fatica però, ed annegando in un mare di complicazioni.

Certo, la programmazione ad oggetti non è una barzelletta, ma è opportuno conoscerla se si voglio programmare interfacce utente, senza non si va da nessuna parte.
Se non la si conosce, un primo approccio lo si può avere col tutorial e guardando in giro per trovare qualche esempio d'uso con tkinter ... nel mio piccolo un esempio (tutt'altro che "perfetto") lo ho anche postato in questo forum, ad uso degli iniziandi come me (che troppo spesso vedo utilizzare il paradigma funzionale).
Naturalmente, non è, poi, che sia sufficiente fermarsi agli esempi preliminari, la materia è complessa e bisogna approfondire svariati aspetti, tanto circa la OOP, quanto sul framework utilizzato per giungere agli svariati pattern di design applicativo, se si vuol "produrre" qualcosa di "sostanzioso".

6
wxPython / [Risolto]Installare wxPython in un venv sotto Linux
« il: Luglio 23, 2020, 11:54 »
I miei saluti.

Utilizzo una distribuzione Linux (Ubuntu 18.04) che di default utilizza la versione 3.6.9 di python (oltre la 2.7.x).
In un venv ho installato la versione "minimale" di python 3.8.0 al fine di eseguire test più conformi alle ultime caratteristiche del linguaggio.
 ... per proporre un esempio in altro forum, mi è venuto in mente di adattare un piccolo esempio di programma asincrono sviluppato in detto venv e di installare nello stesso ambiente le wx, sono sorti dei problemi che ho cercato di affrontare, in ultimo mi son bloccato seguendo i passi in questa pagina, tutto è andato bene sino al make, ma all'avvio della compilazione :
 Running command: build_py
  Checking for /tmp/pip-req-build-td89ziml/bin/waf-2.0.19...
  "/home/nuzzopippo/py_workspace/p38/p38b_v/bin/python" /tmp/pip-req-build-td89ziml/bin/waf-2.0.19 --wx_config=/tmp/pip-req-build-td89ziml/build/wxbld/gtk3/wx-config --gtk3 --python="/home/nuzzopippo/py_workspace/p38/p38b_v/bin/python" --out=build/waf/3.8/gtk3 configure build
  Setting top to                           : /tmp/pip-req-build-td89ziml
  Setting out to                           : /tmp/pip-req-build-td89ziml/build/waf/3.8/gtk3
  Checking for 'gcc' (C compiler)          : /usr/bin/gcc
  Checking for 'g++' (C++ compiler)        : /usr/bin/g++
  Checking for program 'python'            : /home/nuzzopippo/py_workspace/p38/p38b_v/bin/python
  Checking for python version >= 2.7.0     : 3.8.0
  python-config                            : not found
  Checking for library python3.8 in LIBDIR : not found
  Checking for library python3.8 in python_LIBPL : not found
  Checking for library python3.8 in $prefix/libs : not found
  Checking for library python3.8m in LIBDIR      : not found
  Checking for library python3.8m in python_LIBPL : not found
  Checking for library python3.8m in $prefix/libs : not found
  Checking for library python38 in LIBDIR         : not found
  Checking for library python38 in python_LIBPL   : not found
  Checking for library python38 in $prefix/libs   : not found
  Checking for header Python.h                    : Distutils not installed? Broken python installation? Get python-config now!
  The configuration failed
  (complete log in /tmp/pip-req-build-td89ziml/build/waf/3.8/gtk3/config.log)


Mi sembra di capire il "primo" dei problemi sia che non trovi "python-config" nell'ambiente virtuale che però era già li installato
(p38b_v) NzP:~$ pip install python-config
Requirement already satisfied: python-config in ./p38b_v/lib/python3.8/site-packages (0.1.2)
(p38b_v) NzP:~$

Ovviamente, mi ci son perso riguardo nell'insieme di librerie 3.8 non trovate ed il resto del chilometrico output a video. Purtroppo non mi è neanche riusciuscito di trovare il log del processo in "/tmp" (mancati permessi in scrittura, probabilmente) e non so che pesci prendere ... avete qualche suggerimento?

Grazie dell'attenzione :)

7
ForumPython.it cafè / Re:SIamo tornati!
« il: Luglio 22, 2020, 07:32 »
Ne sono molto contento, questo "posto" decisamente mi mancava!

8
Base / Re:esecuzione file con estenzione .py
« il: Giugno 29, 2020, 07:13 »
ho creato il file "prova.py". Apro il terminale e digito python prova.py. Per quello che so, il programma dovrebbe partire, invece mi restituisce l'errore: python: can't open file 'dunque.py': [Errno 2] No such file or directory

Il messaggio evidenziato è chiarissimo : nel Tuo file "prova.py" stai cercando di aprire un file (dunque.py) che non esiste, controlla il Tuo codice.

9
Tkinter / Re:Listbox da file editabile
« il: Giugno 25, 2020, 08:07 »
Appena provato il Tuo codice, mi sembra che effettui quanto Ti sei proposto, un solo suggerimento : nel metodo "sposta" inverti l'ordine di inserimento e cancellazione
    def sposta(self):
        ori = self.lbox.get(self.origine)
        print("origine get ",ori)
        self.lbox.delete(self.origine)
        self.lbox.insert(self.dest, ori)

così com'è puoi perdere dati

10
Tkinter / Re:[risolto] Entry di ricerca
« il: Giugno 25, 2020, 08:04 »
Ok grazie mille, come mi hai consigliato proverò senza fretta a provare a risolvere il problema e magari veramente alla fine dovrò gridare con te "help me"😂. ...

beh @Giampatrizio, la mia era una proposta di esporre in maniera chiara e dettagliata la Tua finalità e di provare ad affrontarla assieme, malgrado il mio scarso tempo disponibile, ciò motivava lo "help me" congiunto ;)

In ogni caso, affrontare "personalmente" una problematica è la cosa migliore perché meno dispersiva e permette di prendersi il tempo "giusto" per riflettere e provare, senz'altro far "da se" è il mezzo più efficace per apprendere "bene" ... son certo posterai un buon codice, buon lavoro :)

11
Altre tematiche / Re:Comunicazione RS485-protocollo ModBus
« il: Giugno 24, 2020, 09:23 »
...per Nunzio, che so che si sta divertendo con il mio libro su wxPython...  ;)
Anche in wxPython esistono i timer (wxTimer)... inoltre esiste anche wx.IDLE_EVENT per programmare eventi a-periodici ...

Già data una prima lettura quei capitoli @Ric, grazie. Da wx.Timer ero rimasto colpito favorevolmente ma dovrò fare un po' di test "pratici" su wx.IDLE_EVENT e wx.Yield, non che l'esposizione non sia chiara, tutt'altro, ma devo assimilarne "materialmente" la metodologia, già il fatto stesso che non mi sia venuto in mente di cercare un QTimer indica che un po' di lavoro devo farlo prima che il mio cervello utilizzi proggettualmente tali concetti.

12
Tkinter / Re:Listbox da file editabile
« il: Giugno 24, 2020, 08:47 »
...
Creo tanti label quante sono le righe nel file (già inserite in una listbox) ed accanto un Entry in cui inserire un numero che rappresenti l'ordine.
Solo che poi non ho idea di come prelevare i dati dei vari Entry associati a quale label (io pensavo di basarmi sui row del frame che contiene sia il label che l'entry)
Insomma navigo in alto mare, aiuto

Come sempre, sono problemi di progettazione che vanno affrontati con le idee chiare ed a cui è difficile (e lungo) rispondere non avendo presente tutto il contesto.

In primo luogo, un "testo editabile" andrebbe affrontato con gli strumenti specifici che tkinter mette a disposizione, concedo che non sono "immediati", il widget "Text" andrebbe studiato approfonditamente per utilizzarlo appieno ma permetterebbe, magari condito da processi di copia/incolla, di far fare ai propri utenti quanto richiesto.

Ciò detto, indichi di avere in una list-box l'elenco delle righe lette ... Ti dovrebbe essere sufficiente questo per permettere lo spostamento di righe alla Tua utenza, dovrebbe esserti sufficiente utilizzare due funzioni di callback, la prima (p.e. intercettando CTRL+C) dovrebbe memorizzare l'indice delle righe al momento selezionate mentre la seconda (p.e. intercettando CTRL+V) che provveda ad individuare la riga corrente e riorganizzi la lista spostando i dati di indice memorizzato in posizione precedente. Poi elaborare.
... al momento non mi è possibile farTi un esempio in merito.

In merito alle "associazioni" di entry e label, ho fatto un esempio (discretamente complesso) in questo post, prova a guardarlo, in particolare circa il sub-classamento delle entry fatte, non è articolato in un "unicum" e non è completo ma tratta praticamente tutti gli aspetti da Te posti, anche se per uno scopo particolare; qualora Ti interessasse sono disponibile a provvedere a rendere accessibile il codice per intero.

Se quanto sopra non ti soddisfa, fai vedere il Tuo codice, in modo da capire cosa fare.

Ciao :)

13
Altre tematiche / Re:Comunicazione RS485-protocollo ModBus
« il: Giugno 23, 2020, 14:05 »
Purtroppo sono al di fuori delle mie conoscenze tanto le Qt, quanto pymodbus, volevo però segnalarTi che a giudicare da questo articolo, le pyQT5 possiedono oggetti potenzialmente interessanti, quali QRunnable o QThreadPool, li hai provati?

Riguardo al crash, un po' tutti i framework grafici sono a thread bloccante (quando li avvii fermano il resto), non è che sia questa l'origine del tuo problema? Hai attività esterne al loop grafico quando istanzi qt?

14
Benvenuto e regolamento / Re:Buongiorno a tutti!!
« il: Giugno 23, 2020, 13:54 »
Ciao @Anakin, ben venuto, magari si impara assieme :)

... VisualBasic? .Net o quello "vecchio"? Quest'ultimo lo ho discretamente usato, a suo tempo.

15
Tkinter / Re:[risolto] Entry di ricerca
« il: Giugno 22, 2020, 12:39 »
Per prima cosa definisci cosa intendi con "sistema di ricerca per somiglianza", il ranking di una pagina non penso proprio sia cosa analoga, cosa ci darebbe il Pk?, quali sarebbero "i link"? ... Oltre tutto ci sarebbe una certa dose di aleatorietà discrezionale da parte di google, a quanto leggo ...

... poi, con me caschi un po' male in merito agli "algoritmi", ho dato 'na guardata al processo markoviano e mi è mancato il respiro, sono più di 40 anni che mi son diplomato, diciamo che sono un tantino "arrugginito" in materia, anche se poi ci si può sempre mettere, ma non certo improvvisare al momento.

Comunque, son pur sempre argomenti capaci di stimolare le meningi, aspetto per me sempre interessante, se ritieni di volerci provare poni una casistica ben precisa e chiara, ci si ragiona sopra e poi si cerca, si ipotizza un approccio e si prova, il tutto senza fretta (lavoro e famiglia danno tempi "stretti") e per il solo piacere "di farlo" ... magari, se proprio non si riesce, poi gridiamo assieme  "Help me!" ;)

[Edit] Riferisci, forse, a comparazioni di questo genere?

Pagine: [1] 2 3 ... 20