#python #automation #timer #user-input
#python #автоматизация #таймер #пользовательский ввод
Вопрос:
Я пытаюсь научить себя Python, и у меня возникли некоторые вопросы. Я понимаю общую идею, мне просто нужна помощь в ее точной настройке. Спасибо
#imports
import RPi.GPIO as GPIO
import datetime
import time
#Relay 1 board number
R1 = 26
GPIO.setmode(GPIO.BCM)
GPIO.setup(R1, GPIO.OUT)
h_d = user_input
#start prompts
print("Light schedule")
time.sleep(2)
print("Input hours/day:") #Need command to request user input
print("Hours of light per day =", h_d) #Missing something
#loop
try:
while True:
now = datetime.datetime.now().time()
GPIO.output(R1,GPIO.LOW)
if now.hour == 7: #Daily start time
GPIO.output(R1, GPIO.HIGH)
print("Lights ON @") #Need it to print only once per occurrence
print(time.strftime("%-I:%M %p")) #Something missing
elif start_time user_input
GPIO.output(R1, GPIO.LOW)
print("Lights OFF @") #Need it to print only once per occurrence
print(time.strftime("%-I:%M %p")) #Something missing
finally:
GPIO.cleanup()
Комментарии:
1. Что вы хотите, чтобы программа делала? Что происходит в данный момент при ее запуске?
2. Я хочу, чтобы программа спрашивала пользователя, сколько часов в день он хочет, чтобы свет был включен. Включение света всегда начинается в 7 утра и продолжается столько часов, сколько выберет пользователь, затем оно повторяется каждый день до остановки. Мне нужна помощь с запросом пользовательского ввода и другими небольшими изменениями, все они перечислены в примечаниях к коду.
3. Python используется
input
для получения входных данных иint
изменения (преобразования) строки в целое число.4. Кроме того, вы не хотите, чтобы ваша программа выполнялась все время, поэтому в цикле добавьте a
sleep(60)
для ожидания одной минуты между проверками.5.
elif start_time user_input
эта строка, похоже, ничего не значит, я предполагаю, что вы хотели что-то вродеstart_time user_input > now
, однако это будет сложно реализовать. Вместо этого мы можем ограничить себя целым количеством часов и просто проверить это:now.hour == (7 user_input) % 24