Forum
>>
Principianti
>>
Semplificare condizione valore compreso tra
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da polbob |
2019-11-02 11:08:12 - Semplificare condizione valore compreso tra
|
Buongiorno a tutti! Sono alle prime armi (ho qualche base di basic che usavo nel 1986 ) ed ora sto cercando di ottenere un risultato diverso in funzione del valore compreso tra due numeri. Il codice è questo :
while True: vout =round(adc.value*3.3,2)*100 if vout>=40 and vout<=49: angles = 0.0 if vout>=131 and vout<=150: angles = 22.5 if vout>=120 and vout<=130: angles = 45.0 if vout>=277 and vout<=284: angles = 67.5 if vout>=268 and vout<=276: angles = 90.0 if vout>=285 and vout<=294: angles = 112.5 if vout>=227 and vout<=234: angles = 135.0 if vout>=255 and vout<=262: angles = 157.5 if vout>=183 and vout<=190: angles = 180.0... e la lista va avanti fino a 337.5. La domanda è : esiste un modo per semplificare il tutto (non troppo complesso, per carità) Grazie a chi potrà rispondermi p.s.: uso python 2.7 --- Ultima modifica di polbob in data 2019-11-02 11:13:26 --- |
|
Scritto da RicPol |
2019-11-02 23:00:05 - Re: Semplificare condizione valore compreso tra
|
Ma non ho capito... li metti in ordine sparso così, perché vuoi complicare un po' di più la vita di chi legge il tuo codice?
Comunque ci sono diverse possibilità per problemi del genere... un'idea potrebbe essere mettere gli estremi superiori degli intervalli ORDINATI in una lista e iterarci sopra fino a sbattere in quello giusto.. tipo, invece di avere, per esempio def select(val): if val>0 and val<10: ret = 5 elif val>10 and val<20: ret = 15 elif val>20 and val<30: ret = 25 return retavere: def select(val): bounds = [0, 10, 20, 30] results = [5, 15, 25] ret = 5 for n, b in enumerate(bounds): if val<b: return ret ret = results[n](con un po' più sofisticherie per il controllo degli errori, etc.) > p.s.: uso python 2.7 NON usare python 2.7. Python 2.7 è abandonware, dimenticalo. Non si deve più usare. Usare Python 2.7 per imparare, poi, è veramente assurdo. --- Ultima modifica di RicPol in data 2019-11-02 23:03:49 --- https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
|
Scritto da polbob |
2019-11-03 10:59:31 - Re: Semplificare condizione valore compreso tra
|
Grazie, sono in ordine sparso perché sono i valori che mi restituisce un sensore collegato ad un adc 3008 collegato ad un raspberry e sono in "ordine" di rotazione, cioè ruotando questo sensore le tensioni che mi da sono quelle da 0 gradi a 360 in senso orario. Python 2.7 devo usarlo perché sto utilizzando una distro (openplotter) che attualmente ha quella versione. Comunque grazie, ora mi studio un po' le indicazioni che mi hai dato e provo
|
|
Scritto da RicPol |
2019-11-03 14:11:10 - Re: Semplificare condizione valore compreso tra
|
terrificante. Mah, almeno vedo che stanno lavorando a una versione 2 che passa a python 3... ma vedo anche che è a meno di metà del lavoro... https://github.com/sailoog/openplotter/projects/4#card-24257809
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
|
Scritto da polbob |
2019-11-03 15:32:13 - Re: Semplificare condizione valore compreso tra
|
Si esatto, per quello preferisco per ora tenere la versione testata e funzionante. In ogni caso credo che la filosofia di Python 2 sia uguale al 3 se non per nuove funzionalità, o sbaglio?
|
|
Scritto da RicPol |
2019-11-03 15:35:29 - Re: Semplificare condizione valore compreso tra
|
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
Pagina: 1
Esegui il login per scrivere una risposta.