(초보)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")
  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 변수명과 문자열은 다른겁니다. 혼동하고 계시네요. 정영훈 2017.11.29 20:07
  • 좀 질문을 할 때, 소스코드 통째로 복사 붙여넣기 하지 말고. 좀 축약해서 원하시는 질문의 핵심만 질문하는 형태로 써주시면 안되나요?.... 화가 나네요; ㄷㄷㄷ... dbwodlf3 2017.11.30 11:01
  • dbwodlf3 님, 이런곳에 질문이 처음인지라 실수한 부분이 있는거 같네요. 다음부턴 축약해서 올리도록 하겠습니다. 감사합니다. 알 수 없는 사용자 2017.11.30 11:37

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)