python, continue
조회수 499회
고수님들 안녕하십니까 코린이가 질문올립니당 !
numbers = [ (1,2),(10,0) ]
for a,b in numbers:
if b == 0:
print("0으로 나눌 수는 없습니다.")
continue
print("{}를 {}로 나누면 {}".format(a,b,a/b))
이걸 실행하면
1를 2로 나누면 0.5
0으로 나눌 수는 없습니다. 이렇게 두줄로 나옵니다.
print("0으로 나눌 수는 없습니다.") 이 코드가 먼저나와야 하는 것 아닌가요?
왜 이 코드가 두번째로 나오는건가요?
감사함니당
1 답변
-
위의 코드는 들여쓰기가 잘못되어 오류가 발생할겁니다. for 라인 아래로 들여쓰기를 제대로 했다는 가정하에 생각해봅시다.
numbers = [ (1,2),(10,0) ] for a,b in numbers: if b == 0: print("0으로 나눌 수는 없습니다.") continue print("{}를 {}로 나누면 {}".format(a,b,a/b))
a는 첫번째 반복시 1 이 되고 두번째 반복시 10 이 됩니다.
b는 첫번째 반복시 2 가 되고 두번째 반복시 0 이 됩니다.
즉
if b == 0:
조건은 두번째 반복시 충족되는 조건입니다.정리하면 첫번째 반복시
1를 2로 나누면 0.5
출력이 되고 이어서 두번째 반복시0으로 나눌 수는 없습니다.
가 출력됩니다.
이런 문제는 라인단위로 디버깅을 하면 쉽게 파악되는 문제입니다.
우선 pdb(http://pythonstudy.xyz/python/article/505-Python-%EB%94%94%EB%B2%84%EA%B9%85-PDB) 사용법을 숙지하시기 바랍니다.
댓글 입력