Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone'
Zenfone 11 Ultra ha tantissime qualità interessanti, fra cui potenza da vendere, un display di primissimo livello, un comparto audio potente e prestazioni di connettività fra le migliori della categoria. Manca però dell'esclusività del predecessore, che in un settore composto da "padelloni" si distingueva per le sue dimensioni compatte. Abbiamo provato il nuovo flagship ASUS, e in questa recensione vi raccontiamo com'è andata.
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA
Abbiamo partecipato ad Appian World 2024, evento dedicato a partner e clienti che si è svolto recentemente nei pressi di Washington DC, vicino alla sede storica dell’azienda. Nel festeggiare il 25mo anniversario, Appian ha annunciato diverse novità in ambito intelligenza artificiale
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini
Primo contatto con il monitor Lenovo ThinkVision 3D 27 che grazie a particolari accorgimenti tecnici riesce a ricreare l'illusione della spazialità tridimensionale senza che sia necessario utilizzare occhialini
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-03-2010, 17:27   #1
VirtualFlyer
Senior Member
 
L'Avatar di VirtualFlyer
 
Iscritto dal: Oct 2009
Messaggi: 5001
[Python]Cambiare il codice dall'interno

Sto scrivendo un programma che fa determinate cose in base all'input che gli viene inserito, una cosa tipo:
Codice:
 prova = raw_input ('scrivi qui il comando: ')
 if prova == '1':
  fai qualcosa
 elif prova == '2':
  fai qualcos'altro
 ...
insomma, una cosa molto semplice.
Ora avrei bisogno che se l'operatore scrivesse tipo 'ciao'
succedesse una cosa tipo:
Codice:
elif prova = 'ciao'
 print 'Sistema di eccezioni'
  eccezione = raw_input ('Scrivi il testo che vuoi che sia digitato affinchè il risultato sia 4')
# poi dovrebbe aprire un file di testo 
#trovare una riga che inizia con #
#andare alla riga prima
# scrivere qualcosa tipo: elif prova == eccezione
                                  print 4
#aprire un piccolo batch
#chiudersi
Il batch andrebbe a cancellare il .py e a rinominare il txt .py, così da avere il programma con l'eccezione definita dall'utente.
credo che potrei arrivare fino ad aprire il file e a trovare la riga con #, ma poi come faccio a dirgli in che riga scrivere? (tra l'altro, ripensandoci, credo che dovrei aprirlo due volte. una in lettura per trovare # e un'altra in scrittura)

Un'altra ipotesi si potrebbe fare, sapendo già cosa fare in caso di eccezione, scrivere gli input per cui vale l'eccezione e farli leggere dal programma senza dover usare anche il batch?

Forse mi sto solo complicando la vita, ma mi diverto così!

P.S.
Mi consigliate qualche GUI per python che sia facile e che dia un risultato decente?

P.P.S
Se non ho letto male, youtube è stato programmato in python, ma non servirebbe aver installato l'interprete allora?
__________________
L'italiano è una lingua stupenda.
Non killiamola. Craftare nuove parole non serve
[HWU]Virtula - Lenovo Y580: i7 3630QM - Nvidia GTX660M - 8GB - SSD 256 + 750 - 15" FHD + Leap Motion

Ultima modifica di VirtualFlyer : 23-03-2010 alle 18:02.
VirtualFlyer è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2010, 19:28   #2
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26107
Quote:
Originariamente inviato da VirtualFlyer Guarda i messaggi
Sto scrivendo un programma che fa determinate cose in base all'input che gli viene inserito, una cosa tipo:
Codice:
 prova = raw_input ('scrivi qui il comando: ')
 if prova == '1':
  fai qualcosa
 elif prova == '2':
  fai qualcos'altro
 ...
insomma, una cosa molto semplice.
Ora avrei bisogno che se l'operatore scrivesse tipo 'ciao'
succedesse una cosa tipo:
Codice:
elif prova = 'ciao'
 print 'Sistema di eccezioni'
  eccezione = raw_input ('Scrivi il testo che vuoi che sia digitato affinchè il risultato sia 4')
# poi dovrebbe aprire un file di testo 
#trovare una riga che inizia con #
#andare alla riga prima
# scrivere qualcosa tipo: elif prova == eccezione
                                  print 4
#aprire un piccolo batch
#chiudersi
Il batch andrebbe a cancellare il .py e a rinominare il txt .py, così da avere il programma con l'eccezione definita dall'utente.
credo che potrei arrivare fino ad aprire il file e a trovare la riga con #, ma poi come faccio a dirgli in che riga scrivere? (tra l'altro, ripensandoci, credo che dovrei aprirlo due volte. una in lettura per trovare # e un'altra in scrittura)
Ti do qualche suggerimento.

Converrebbe leggere tutte le righe del file in una lista, e individuare la posizione col #. A questo punto inserire una o più righe in quella posizione diventa banale.
Quote:
Un'altra ipotesi si potrebbe fare, sapendo già cosa fare in caso di eccezione, scrivere gli input per cui vale l'eccezione e farli leggere dal programma senza dover usare anche il batch?
Non ho capito bene, scusa. Potresti essere più chiaro?
Quote:
Forse mi sto solo complicando la vita, ma mi diverto così!
L'importante è divertirsi: è così che si impara meglio, si fissano le cose in mente, e soprattutto si mantiene la voglia di continuare a programmare.
Quote:
P.S.
Mi consigliate qualche GUI per python che sia facile e che dia un risultato decente?
Mai usate, da quel che ho letto forse ti conviene usare le PyQT.
Quote:
P.P.S
Se non ho letto male, youtube è stato programmato in python,
Esatto: è realizzato quasi interamente in Python, da quanto dicono gli ingegneri che l'hanno realizzato.
Quote:
ma non servirebbe aver installato l'interprete allora?
Certamente.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 13:09   #3
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4125
Prima cosa, non è

Codice:
elif prova = 'ciao'
ma

Codice:
elif prova == 'ciao'
Per quanto riguarda il file lo puoi benissimo aprire una volta sola, in modalità lettura e scrittura (attento che nella modalità scrittura ti cancella quello che hai già scritto, quindi aprilo nella modalità corretta), e poi usare tell() che ti dice in quale posizione del file sei e seek() che ti riporta ad una determinata posizione nel file. Oppure usare readlines() come ha detto cdimauro.

Quote:
Mi consigliate qualche GUI per python che sia facile e che dia un risultato decente?
Le PyQT sono le migliori.
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 13:22   #4
VirtualFlyer
Senior Member
 
L'Avatar di VirtualFlyer
 
Iscritto dal: Oct 2009
Messaggi: 5001
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Ti do qualche suggerimento.

Converrebbe leggere tutte le righe del file in una lista, e individuare la posizione col #. A questo punto inserire una o più righe in quella posizione diventa banale.

Non ho capito bene, scusa. Potresti essere più chiaro?

L'importante è divertirsi: è così che si impara meglio, si fissano le cose in mente, e soprattutto si mantiene la voglia di continuare a programmare.

Mai usate, da quel che ho letto forse ti conviene usare le PyQT.

Esatto: è realizzato quasi interamente in Python, da quanto dicono gli ingegneri che l'hanno realizzato.

Certamente.
Grazie mille, comunque era un po' una stupidata e a ripensarci non era fattibile.

So che per te può essere banale, ma mi puoi dire i comandi per favore?

Per youtube, come fa allora a funzionare anche su computer senza interprete?
__________________
L'italiano è una lingua stupenda.
Non killiamola. Craftare nuove parole non serve
[HWU]Virtula - Lenovo Y580: i7 3630QM - Nvidia GTX660M - 8GB - SSD 256 + 750 - 15" FHD + Leap Motion
VirtualFlyer è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 13:26   #5
VirtualFlyer
Senior Member
 
L'Avatar di VirtualFlyer
 
Iscritto dal: Oct 2009
Messaggi: 5001
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
Prima cosa, non è

Codice:
elif prova = 'ciao'
ma

Codice:
elif prova == 'ciao'
Per quanto riguarda il file lo puoi benissimo aprire una volta sola, in modalità lettura e scrittura (attento che nella modalità scrittura ti cancella quello che hai già scritto, quindi aprilo nella modalità corretta), e poi usare tell() che ti dice in quale posizione del file sei e seek() che ti riporta ad una determinata posizione nel file. Oppure usare readlines() come ha detto cdimauro.



Le PyQT sono le migliori.
Sì, avevi ragione per ==, un errore sciocco!

mi potreste fare un esempio di codice?

Ultima cosa: mi sapreste consigliare qualche tutorial sulle PyQT?

EDIT: finora ho trovato questo http://zetcode.com/tutorials/pyqt4/
__________________
L'italiano è una lingua stupenda.
Non killiamola. Craftare nuove parole non serve
[HWU]Virtula - Lenovo Y580: i7 3630QM - Nvidia GTX660M - 8GB - SSD 256 + 750 - 15" FHD + Leap Motion

Ultima modifica di VirtualFlyer : 24-03-2010 alle 13:29.
VirtualFlyer è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 14:57   #6
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4125
YouTube gira sul tuo pc? No, quindi a te non interessa avere un interprete.

Per le PyQt il miglior libro è "Rapid GUI Development With Python and Qt".

Per il tuo problema basta che guardi la documentazione, se non ti abitui non imparerai mai. Ti faccio un altro esempio (non l'ho provato):

Codice:
entrata = open("leggo.txt", 'r')
uscita = open("scrivo.txt", 'w')

for p,l in enumerate(entrata):
  if l[0] == '#':
    # qua scrivi quello che devi
  uscita.write(l)

entrata.close()
uscita.close()
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 15:06   #7
VirtualFlyer
Senior Member
 
L'Avatar di VirtualFlyer
 
Iscritto dal: Oct 2009
Messaggi: 5001
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
YouTube gira sul tuo pc? No, quindi a te non interessa avere un interprete.

Per le PyQt il miglior libro è "Rapid GUI Development With Python and Qt".

Per il tuo problema basta che guardi la documentazione, se non ti abitui non imparerai mai. Ti faccio un altro esempio (non l'ho provato):

Codice:
entrata = open("leggo.txt", 'r')
uscita = open("scrivo.txt", 'w')

for p,l in enumerate(entrata):
  if l[0] == '#':
    # qua scrivi quello che devi
  uscita.write(l)

entrata.close()
uscita.close()
Grazie, per aprire il batch cosa posso usare?


Edit:
Ho provato ad installare le pyqt4:
Ho scaricato il qtsdk, sip e le pyqt4
Ora ho copiato la cartella di sip ed ho aperto configure.py e i 4 o 5 file python che ne sono derivati. Poi ho provato ad aprire il file configure.py di qtpy4, ma ha dato errore perchè non esiste alcun modulo chiamato sipconfig
In un lampo di genio ho capito che questo modulo deve essere in qualche modo connesso all'interprete, ma mi potreste spiegare come si fa?

Grazie mille in anticipo
__________________
L'italiano è una lingua stupenda.
Non killiamola. Craftare nuove parole non serve
[HWU]Virtula - Lenovo Y580: i7 3630QM - Nvidia GTX660M - 8GB - SSD 256 + 750 - 15" FHD + Leap Motion

Ultima modifica di VirtualFlyer : 24-03-2010 alle 17:02.
VirtualFlyer è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 17:30   #8
Ryuzaki_Eru
Senior Member
 
L'Avatar di Ryuzaki_Eru
 
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4125
Non ho capito nulla, in ogni caso se sei su Windows ci sono gli exe pronti, se sei su linux ci sono i pacchetti già pronti da installare. Tutto sto casino non serve. Per aprire il batch usi os.system.
Ryuzaki_Eru è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2010, 18:07   #9
VirtualFlyer
Senior Member
 
L'Avatar di VirtualFlyer
 
Iscritto dal: Oct 2009
Messaggi: 5001
Quote:
Originariamente inviato da Ryuzaki_Eru Guarda i messaggi
Non ho capito nulla, in ogni caso se sei su Windows ci sono gli exe pronti, se sei su linux ci sono i pacchetti già pronti da installare. Tutto sto casino non serve. Per aprire il batch usi os.system.
Chiedo scusa, sono stato molto stupido. Hai perfettamente ragione ho fatto solo un casino inutile.
__________________
L'italiano è una lingua stupenda.
Non killiamola. Craftare nuove parole non serve
[HWU]Virtula - Lenovo Y580: i7 3630QM - Nvidia GTX660M - 8GB - SSD 256 + 750 - 15" FHD + Leap Motion
VirtualFlyer è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Zenfone 11 Ultra: il flagship ASUS ritorna a essere un 'padellone' Recensione Zenfone 11 Ultra: il flagship ASUS ri...
Appian: non solo low code. La missione è l’ottimizzazione dei processi con l'IA Appian: non solo low code. La missione è ...
Lenovo ThinkVision 3D 27, la steroscopia senza occhialini Lenovo ThinkVision 3D 27, la steroscopia senza o...
La Formula E può correre su un tracciato vero? Reportage da Misano con Jaguar TCS Racing La Formula E può correre su un tracciato ...
Lenovo LEGION e LOQ: due notebook diversi, stessa anima gaming Lenovo LEGION e LOQ: due notebook diversi, stess...
eFootball taglia il traguardo dei 750 mi...
MS-DOS 4.0 diventa open source: Microsof...
Micron riceverà 6,1 miliardi di d...
STALKER 2 Heart of Chornobyl: nuovo trai...
Google: ancora un rinvio per lo stop ai ...
Lotus Evija X è la seconda auto elettric...
NIO e Lotus annunciano una grossa novit&...
Esclusive PlayStation su Xbox? Sì...
CATL: una nuova batteria per auto elettr...
TikTok al bando negli USA? Biden firma, ...
Taglio di prezzo di 150 euro per SAMSUNG...
Utenti Amazon Prime: torna a 148€ il min...
Microsoft sfiora i 62 miliardi di dollar...
Coca-Cola al cloud con un pizzico di IA:...
Prodotti TP-Link Tapo in offerta: videoc...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Served by www3v