(초보)Python에서 for문으로 코딩내 숫자를 변경하는 방법이 궁금합니다.


안녕하세요. 파이썬으로 코딩 공부를 시작한 초보입니다. 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일에 작성됨

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


1 답변


구체적으로 무엇을 바라시는건지는 모르겠지만, 아마도 이러한 형태를 원하시는건가요?

for i in range(0,5):
    exec('a%d = %d' % (i,i))

a1
a2
a3
a4
a5

응용 해 주세요;

  • 2017년 11월 30일에 작성됨
    인공생명(Aritificial Life)와 인공지능에 관심이 많은 학생입니다. 주로 Python을 애용 합니다.

  • 감사합니다! 응용해보도록 하겠습니다~    김선호   2017.11.30 11:54     
  • 단순한 문서편집이라면, 에디터를 이용해 주세요. 보통, Ctrl +Shift + F키가 찾아서 바꾸기 기능이에요.    dbwodlf3   2017.11.30 14:57     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close