다중반복문에서 continue를 사용하여 맨 처음 반복문으로 가고자 할 때
조회수 385회
안녕하세요 반복문이 여러개고 어떤 조건이 됐을 때 맨 처음 반복문에서 시작하고 싶은데 어떻게 해야 할까요? 어떻게 해야 할지 모르겠습니다
# 위 code 생략
while True:
# 돌아가고 싶은 지점
# while code 생략
for i, ad in zip(df, adsl):
logger.debug('i.drop(0, axis=0, inplace=True)')
ni = i.drop(0, axis=0)
ni = ni.drop(0, axis=1)
if ni.empty:
logger.info(f'{ad}에 NOTAM 없음')
dins[ad]
else:
for idx, row in ni.iterrows():
if pd.isna(row).any() != True:
row.dropna(inplace=True, axis=0)
logger.debug("row.str.extract(r'(.*)').iloc[0].iloc[0]")
notam = row.str.extract(r'(.*)').iloc[0].iloc[0]
notam_nbr = notam[:8] # 노탐번호
notam_content = notam[11:] # 노탐본분
dins[ad][notam_nbr] = notam_content
else:
logger.info('처음으로 돌아갑니다.')
continue #### 여기서 while 반목문의 처음으로 돌아가고 싶어요
1 답변
-
while True: condition=False for i in range(10): for j in range(10): if j==5: condition=True break if condition==True: break
위 코드 처럼 특정 조건(예를 들어 j==5)에서 특정 변수(condition)의 조건을 참(True)으로 바꾸고, 안쪽 루프를 하나 빠져나가고(break), 안쪽 루프를 빠져나간 직후에 그 변수(condition)가 참이라면 또 루프를 빠져나가도록 코드를 작성하시면 됩니다.
질문에서는 continue로 물어 보았으나, break 대신 continue를 이용하여 코드를 작성할 경우 코드가 더 지저분해 지니까 break를 이용하는 것이 좋을 것 같습니다.
# 위 code 생략 while True: condition=False # 돌아가고 싶은 지점 # while code 생략 for i, ad in zip(df, adsl): logger.debug('i.drop(0, axis=0, inplace=True)') ni = i.drop(0, axis=0) ni = ni.drop(0, axis=1) if ni.empty: logger.info(f'{ad}에 NOTAM 없음') dins[ad] else: for idx, row in ni.iterrows(): if pd.isna(row).any() != True: row.dropna(inplace=True, axis=0) logger.debug("row.str.extract(r'(.*)').iloc[0].iloc[0]") notam = row.str.extract(r'(.*)').iloc[0].iloc[0] notam_nbr = notam[:8] # 노탐번호 notam_content = notam[11:] # 노탐본분 dins[ad][notam_nbr] = notam_content else: logger.info('처음으로 돌아갑니다.') #continue #### 여기서 while 반목문의 처음으로 돌아가고 싶어요 condition=True break if condition==True: break
-
(•́ ✖ •̀)
알 수 없는 사용자
- 답변 감사드립니다. 혹시 아랫줄 if condition==True: 이 부분을 if condition: 으로 바꿔도 같은 의미일까요? 김지용 2021.7.6 21:40
- continue를 사용할 경우, 바로 이전 반복문으로 빠져나가서 벗어나는 코드를 또 써야 하니까 그런 거죠? 만약에 while 다음에 for 반복문 하나만 있었으면 continue를 써도 똑같은 결과를 가져오고요. 제가 맞게 이해했을까요? 김지용 2021.7.6 21:52
- if condition==True:를 if condition:로 바꾸어도 같은 의미입니다. 알 수 없는 사용자 2021.7.6 21:54
- 댓글의 두번째 질문은 애매하게 써 놓아서 무슨 말인지 모르겠습니다. 알 수 없는 사용자 2021.7.6 21:56
- 두번째 질문은 제가 좀 더 생각해보겠습니다! 답변 감사합니다~ 김지용 2021.7.6 22:05
-
댓글 입력