(초보)Python에서 for문으로 코딩내 숫자를 변경하는 방법이 궁금합니다.
조회수 1683회
안녕하세요. 파이썬으로 코딩 공부를 시작한 초보입니다. for문으로 처리하면 쉽게 해결될 내용인것 같은데, 제가 아직 익숙치 않아 질문을 남깁니다. 아래와 같은 코드에서, 숫자 1로 되어 부분을 2와 3, 4로 바꾸길 원합니다.
if Prescription_1 == 'Heating':
if PreStateBoiler_1 == 'Boiler_On_1' and CurrBoiState_1 == 0:
cur.execute(sExecQuery, Boiler_On_1())
conn.commit()
PreStateBoiler_1= 'Boiler_On_1'
print('(Room 1) Status: Heating Zone, Error: Boiler restart')
log.write(' (Room 1) Status: Heating Zone, Error: Boiler restart, ')
elif PreStateBoiler_1 == 'Boiler_On_1' and CurrBoiState_1 == 1:
print('(Room 1) Status: Heating Zone, Boiler is working')
log.write('(Room 1) Status: Heating Zone, Boiler is working, ')
elif PreStateBoiler_1 == 'Boiler_Off_1' and CurrBoiState_1 == 0:
cur.execute(sExecQuery, Boiler_On_1())
conn.commit()
PreStateBoiler_1= 'Boiler_On_1'
print('(Room 1) Status: Heating Zone, Boiler start operation')
log.write(' (Room 1) Status: Heating Zone, Boiler start operation, ')
elif PreStateBoiler_1 == 'Boiler_Off_1' and CurrBoiState_1 == 1:
PreStateBoiler_1= 'Boiler_On_1'
print('(Room 1) Status: Heating Zone, Boiler is working')
log.write('(Room 1) Status: Heating Zone, Boiler is working, ')
else:
print('(Room 1) Status: Heating Zone, Unknown ')
log.write('(Room 1) Status: Heating Zone, Unknown, ')
이를 해결 하기 위해서, for문을 사용하기 좋을것 같다 싶어서... 아래와 같이 코딩을 해봤는데요.일단 저는 for문에 문자열 변수대입을 적용해봤는데... 실행자체가 되질 않습니다. 혹시 문자열 변수 대입을 잘못한건가요? 조언 부탁드리겠습니다.
for k in range (1,5):
if 'Prescription_%d' %k == 'Heating':
if 'PreStateBoiler_%d' %k == "'Boiler_On_%d'%k" and 'CurrBoiState_%d'%k == 0:
cur.execute(sExecQuery, 'Boiler_On_%d()'%k)
conn.commit()
'PreStateBoiler_%d' %k = "'Boiler_On_%d'%k"
print("'(Room %d) Status: Heating Zone, Error: Boiler restart'%k")
log.write("'(Room %d) Status: Heating Zone, Error: Boiler restart, '%k")
elif 'PreStateBoiler_%d'%k == "'Boiler_On_%d'%k" and 'CurrBoiState_%d'%k == 1:
print("'(Room %d) Status: Heating Zone, Boiler is working'%k")
log.write("'(Room %d) Status: Heating Zone, Boiler is working, %k'")
elif 'PreStateBoiler_%d' %k == "'Boiler_Off_%d'%k" and 'CurrBoiState_%d'%k == 0:
cur.execute(sExecQuery, 'Boiler_On_%d'%k())
conn.commit()
'PreStateBoiler_%d' %k= "'Boiler_On_%d'%k"
print("'(Room %d) Status: Heating Zone, Boiler start operation'%k")
log.write("'(Room %d) Status: Heating Zone, Boiler start operation, '%k")
elif 'PreStateBoiler_%d' %k == "'Boiler_Off_%d'%k" and 'CurrBoiState_%d'%k == 1:
'PreStateBoiler_%d'%k= "'Boiler_On_%d'%k"
print("'(Room %d) Status: Heating Zone, Boiler is working'%k")
log.write("'(Room %d) Status: Heating Zone, Boiler is working, '%k")
else:
print("'(Room %d) Status: Heating Zone, Unknown!! '%k")
log.write("'(Room %d) Status: Heating Zone, Unknown!!, '%k")
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
구체적으로 무엇을 바라시는건지는 모르겠지만, 아마도 이러한 형태를 원하시는건가요?
for i in range(0,5): exec('a%d = %d' % (i,i)) a1 a2 a3 a4 a5
응용 해 주세요;
- 감사합니다! 응용해보도록 하겠습니다~ 알 수 없는 사용자 2017.11.30 11:54
- 단순한 문서편집이라면, 에디터를 이용해 주세요. 보통, Ctrl +Shift + F키가 찾아서 바꾸기 기능이에요. dbwodlf3 2017.11.30 14:57
댓글 입력