ko ko ko en en en ko ko cs zh cs ko ko ko ko ko ko ko zh ko ko ko ar ko ko ko ko ko th ko ko ko ko sv ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko fr ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko fi ko ko ko ko ko ko ko ko ko ko ko ko fr ko ko ko en en ko en zh en en
COS Pro 2급 파이썬: 12.2 if 조건문과 들여쓰기
◀ 12.1 if 조건문 사용하기12.3 중첩 if 조건문 사용하기 ▶︎
지금까지 들여쓰기는 크게 신경을 쓰지 않았죠? 파이썬은 들여쓰기도 문법으로 정해져 있으며 if 조건문도 들여쓰기가 중요합니다.
다음 내용을 IDLE의 소스 코드 편집 창에 입력한 뒤 실행해보세요.
x = 10   if x == 10:   print('x에 들어있는 숫자는')          print('10입니다.')     # unexpected indent 에러 발생 #↑ ↖ 들여쓰기 8칸 # 들여쓰기 4칸
실행을 해보면 두 번째 print부분에서 unexpected indent 에러가 발생합니다.
이제 올바른 코드로 고쳐 볼까요? 다음과 같이 두 번째 print도 들여쓰기 4칸으로 만들어줍니다.
x에 들어있는 숫자는 10입니다.
이제 실행이 잘 됩니다. 즉, if 다음에 오는 코드들은 반드시 들여쓰기 깊이가 같아야 합니다.
만약 첫 번째 print만 들여쓰기를 하고, 두 번째 print는 들여쓰기를 하지 않으면 의도치 않은 동작이 됩니다.
x = 10   if x == 10:      print('x에 들어있는 숫자는' # ← 들여쓰기 4칸 print ('10입니다.') #↑ 들여쓰기 없음
x에 들어있는 숫자는 10입니다.
print 두 개가 모두 실행되었습니다. 하지만 다음과 같이 x가 5라면 어떻게 될까요?
x = 5          # x에 5를 할당   if x == 10:    # x가 5라서 조건식이 만족하지 않음      print('x에 들어있는 숫자는') # ← 들여쓰기 4칸 print ('10입니다.') #↑ 들여쓰기가 없어서 if와는 상관없는 코드가 됨
x가 5라서 if의 조건식이 만족하지 않으므로 다음에 오는 print('x에 들어있는 숫자는')는 실행이 되지 않습니다. 그런데 print('10입니다.')는 실행이 되었죠? 왜냐하면 들여쓰기가 없어서 if와는 상관없는 코드가 되었기 때문입니다.
즉, if 다음 줄에 들여쓰기가 된 코드는 if의 영향을 받아서 조건식에 따라 실행이 결정되지만 들여쓰기가 되지 않은 코드는 항상 실행됩니다. 들여쓰기 하나 때문에 의도치 않은 동작이 되었는데(x가 5일때는 '10입니다.'가 출력되지 않아야 하는데 출력됨) 이런 코드는 일단 실행이 되기 때문에 초보자들은 잘못된 부분을 찾기가 쉽지 않습니다. 자신이 의도한 부분과 코드의 들여쓰기가 일치하는지 항상 확인해주세요.
다음과 같이 print를 한 줄 띄워보면 왜 그런지 알 수 있습니다.
x = 5   if x == 10:    # x가 5라서 조건식이 만족하지 않음     print('x에 들어있는 숫자는')   print('10입니다.')    # 위의 if와는 상관없는 코드
파이썬에서 :가 나오면 그 다음 줄부터는 무조건 들여쓰기를 한다는 점만 기억하면 됩니다.
참고 | if와 들여쓰기 칸 수
if에서 처음부터 들여쓰기를 4칸으로 했다면 계속 4칸으로 유지하고, 2칸으로 했다면 계속 2칸으로 유지합니다. 어떨 땐 4칸 어떨 땐 2칸 이렇게는 안 됩니다.
x = 10   if x == 10: print('x에 들어있는 숫자는')    print('10입니다.') #↖ 들여쓰기 2칸
들여쓰기를 공백 4칸에서 2칸으로 수정해서 실행해보면 에러 없이 잘 실행됩니다. 들여쓰기 칸 수 자체는 문법으로 정해져 있지 않으며 오직 들여쓰기 깊이로만 판단합니다. 하지만 파이썬 코딩 스타일 가이드(PEP 8)에서는 공백 4칸으로 규정하고 있으므로 4칸을 권장합니다.
◀ 12.1 if 조건문 사용하기12.3 중첩 if 조건문 사용하기 ▶︎
COS Pro 2급 C 언어
COS Pro 2급 파이썬
Unit 1. 소프트웨어 교육과 파이썬
Unit 2. 파이썬 설치하기
Unit 3. Hello, world!로 시작하기
Unit 4. 기본 문법 알아보기
Unit 5. 숫자 계산하기
Unit 6. 변수 사용하기
Unit 7. 문자열 사용하기
Unit 8. 입력 값을 변수에 저장하기
Unit 9. 출력 방법 알아보기
Unit 10. 산술 연산자 알아보기
Unit 11. 불과 비교, 논리 연산자 알아보기
Unit 12. if 조건문으로 특정 조건일 때 코드 실행하기
12.0 if 조건문으로 특정 조건일 때 코드 실행하기
12.1 if 조건문 사용하기
12.2 if 조건문과 들여쓰기
12.3 중첩 if 조건문 사용하기
12.4 사용자가 입력한 값에 if 조건문 사용하기
12.6 연습문제: if 조건문 사용하기
Unit 13. else를 사용하여 두 방향으로 분기하기
Unit 14. elif를 사용하여 여러 방향으로 분기하기
Unit 15. for 반복문으로 Hello, world! 100번 출력하기
Unit 16. while 반복문으로 Hello, world! 100번 출력하기
Unit 17.break와 continue로 반복문 제어하기
Unit 19. 리스트와 튜플 사용하기
Unit 20. 리스트와 튜플 응용하기
Unit 21. 2차원 리스트와 튜플 사용하기
Unit 22. 문자열 응용하기
Unit 23. 회문 판별과 N-gram 만들기
Unit 24. 함수 사용하기
- 이 사이트에 실린 모든 내용, 디자인, 이미지, 편집 구성의 저작권은 (주)도서출판 길벗과 지은이에게 있습니다.
- 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다.
- 책의 내용을 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다.
- 링크, SNS 공유는 허용합니다.
서울시 마포구 서교동 월드컵로 10길 56 (서울시 마포구 서교동 467-9)
Copyright © 2016-2021 Coding Dojang