Я изучаю некоторые уроки на Python, поскольку я довольно новый, и я натолкнулся на функцию, которую я хотел бы использовать. А именно, «foreach». The tutorial script I'm basing myself on looks as follows:Комбинация Python для каждого и подсчет
#!/usr/bin/python for letter in 'Python': # First Example print 'Current Letter :', letter print "Good bye!"
и
#!/usr/bin/python for num in range(10,20): #to iterate between 10 to 20 for i in range(2,num): #to iterate on the factors of the number if num%i == 0: #to determine the first factor j=num/i #to calculate the second factor print '%d equals %d * %d' % (num,i,j) break #to move to the next number, the #first FOR else: # else part of the loop print num, 'is a prime number'
У меня есть свой список, который я хотел бы конкретное действие, которое будет применяться на, и этот список варьируется от РЕЛЕ1 до relay16. Есть ли способ сделать это число от 1 до 16 для меня во время просмотра списка?
я думал что-то вдоль линий:
GPIO.setmode(GPIO.BCM)
for number in range(1, 17):
GPIO.setup("relay" + number, GPIO.OUT)
GPIO.output("relay" + number, GPIO.LOW)
time.sleep(1)
GPIO.output("relay" + number, GPIO.HIGH)
GPIO.cleanup()
но он не:
Traceback (most recent call last):
File "relay.py", line 25, in <module>
GPIO.setup("relay" + number, GPIO.OUT)
TypeError: cannot concatenate 'str' and 'int' objects
Спасибо за вашу помощь!
Является ли «реле» + str (number) 'просто то, что вам нужно? –
Не работает ли это? Очевидно, что 'для числа/в диапазоне ...' должно быть 'для числа в диапазоне ...' (no/before in). Если он не работает, возникает ошибка. Если это не работает и нет ошибки, у вас есть рабочий код без цикла? – sberry