Forum
>>
Programmazione Python
>>
Scripting
>>
Ma perchè non funziona??
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Ema |
2016-06-23 20:31:31 - Ma perchè non funziona??
|
ciao a tutti,
ho un problemino con un semplice script...e non capisco proprio dove sbaglio... Sostanzialmente è un programmino per far funzionare una mangiatoia a ore prestabilite. Nel file mangiatoia_1.txt inserisco l'orario a cui vorrei che partisse e distribuisse il cibo. Ovviamente poi sarà collegata con GPIO per farla funzionare. Il problema è che non mi restituisce il m ==t e non capisco proprio il perchè... qualcuno riesce ad aiutarmi? Grazie Ema #!/usr/bin/python # -*- coding: utf-8 -*- import time #CIBO while True: t= time.strftime("%H:%M") mangiatoia_1 = open ("mangiatoia_1.txt", "r") m = mangiatoia_1.readline() print(m,t) if m == t: print (t,'mangiatoia on') else: print (t,('mangiatoia off')) time.sleep(15) |
|
Scritto da Claudio_F |
2016-06-23 22:17:09 - Re: Ma perchè non funziona??
|
Prova a stampare la lunghezza delle stringhe che confronti, e anche i codici dei caratteri che le compongono.
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
|
Scritto da Ema |
2016-06-24 09:55:39 - Re: Ma perchè non funziona??
|
purtroppo il risultato non cambia...
if mangiatoia_1.readline() == time.strftime("%H:%M"): |
|
Scritto da Claudio_F |
2016-06-24 10:15:31 - Re: Ma perchè non funziona??
|
Non va perché è esattamente la stessa cosa.
Riscrivo il suggerimento sotto forma di domande... Quanto sono lunghe le stringhe m e t ? (verificarlo con len(str)) Da che caratteri sono composte? (stamparli uno per uno con ord(char)) Sono uguali? (beh, no, questo già è intuibile, quale differenza hanno?) *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
|
Scritto da Ema |
2016-06-24 11:20:17 - Re: Ma perchè non funziona??
|
Grazie, ora ho risolto.
if m == time.strftime("%H:%M"):effettivamente mi da due lunghezze di stringhe diverse se uso "m" o "mangiatoia_1.readline()", anche se non ho capito perchè. Se gli dico che "m==mangiatoia_1.readline()" non dovrebbero essere identici? Grazie ancora e scusa per la mia ignoranza ma come avrai capito non sono proprio un'esperto in materia... |
|
Scritto da Claudio_F |
2016-06-24 16:04:41 - Re: Ma perchè non funziona??
|
def stampaquestabenedettastringa(benedettastringa): print("Lunghezza: %d" % len(benedettastringa)) print("DEC HEX CHR") for carattere in benedettastringa: codice = ord(carattere) ch = carattere if 32 <= codice <= 126 else repr(carattere)[1:-1] print("%3d %02X %s" % (codice, codice, ch)) --- Ultima modifica di Claudio_F in data 2016-06-24 16:12:12 --- *** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione *** |
Pagina: 1
Esegui il login per scrivere una risposta.