콘텐츠 내 자동삽입광고

광고1

posted by 초코생크림빵 2025. 8. 21. 15:36
반응형

파이썬에서 선택문은 조건문이라고도 불리며, 특정 조건에 따라 다른 코드를 실행하는 데 사용됩니다. 주요 선택문 종류는 if, elif, else입니다.

if 문

if 문은 가장 기본적인 선택문으로, 주어진 조건식이 참(True)일 때만 코드 블록을 실행합니다. 조건식은 비교 연산자(==, !=, <, >, <=, >=)나 논리 연산자(and, or, not) 등을 사용해 작성할 수 있습니다. if 문 다음에는 콜론(:)을 붙여야 하며, 실행될 코드 블록은 반드시 들여쓰기해야 합니다.

Python
 
x = 10
if x > 5:
    print("x는 5보다 큽니다.") 

if...else 문

if...else 문은 조건식이 참일 때거짓(False)일 때 각각 다른 코드 블록을 실행합니다. if 조건이 거짓이면 else 블록이 실행됩니다. else 문 역시 콜론(:)으로 끝나고, 그 아래의 코드는 들여쓰기해야 합니다.

Python
 
x = 3
if x > 5:
    print("x는 5보다 큽니다.")
else:
    print("x는 5보다 크지 않습니다.")

if...elif...else 문

if...elif...else 문은 여러 개의 조건을 순차적으로 검사할 때 사용됩니다. elif는 "else if"의 줄임말로, 앞선 if 또는 elif 조건이 모두 거짓일 때 다음 조건을 검사합니다. 조건들은 위에서부터 순서대로 평가되며, 하나라도 참인 조건이 발견되면 그에 해당하는 코드 블록을 실행하고 전체 선택문을 종료합니다. 모든 조건이 거짓일 경우 else 블록이 실행됩니다.

Python
 
score = 85
if score >= 90:
    print("학점은 A입니다.")
elif score >= 80:
    print("학점은 B입니다.")
elif score >= 70:
    print("학점은 C입니다.")
else:
    print("학점은 F입니다.")

 

 

참고)

지켜야 할 규칙

 

파이썬에서 if 문을 사용할 때 지켜야 할 주요 규칙들은 다음과 같습니다.

1. 콜론(:) 사용

if 조건식 끝에는 반드시 콜론(:)을 붙여야 합니다. 콜론은 조건문이 끝났음을 파이썬 인터프리터에 알려주는 역할을 합니다.

Python
 
# 올바른 예
if x > 10:

# 잘못된 예
if x > 10

2. 들여쓰기 (Indentation)

if 문에 속한 코드 블록은 반드시 같은 수준으로 들여쓰기해야 합니다. 파이썬은 중괄호({}) 대신 들여쓰기를 사용하여 코드의 종속 관계를 구분합니다. 일반적으로 공백 4칸 또는 탭을 사용합니다. 들여쓰기 수준이 다르면 IndentationError가 발생합니다.

들여쓰기에서 3칸만 하면 에러나나요?

네, 파이썬에서 들여쓰기를 3칸만 하면 에러가 발생할 수 있습니다.  // 발생할 수 있다고 했지, 꼭 에러가 난다고 하지 않았다.

중요한건 4칸 띄우고, 아래 문장에서는 3칸 띄우고 이렇게 동일하지 않으면 에러가 나는 것을 확인할 수 있다.

직접 칸수를 가지고 해보기 바랍니다.

 

★ 즉, 무엇이냐면 4칸으로 모두 동일하게 타이핑 하는 습관을 가지기 바랍니다. 또는 탭을 사용바랍니다.

Python
 
# 올바른 예
if score > 90:
    print("A 학점입니다.")
    print("수고하셨습니다.")

# 잘못된 예 (들여쓰기 오류)
if score > 90:
    print("A 학점입니다.")
  print("수고하셨습니다.")

3. 조건식

if 문 뒤에는 참(True) 또는 거짓(False)으로 평가될 수 있는 조건식이 와야 합니다. 비교 연산자(==, !=, <, >, <=, >=)나 논리 연산자(and, or, not)를 사용하여 복잡한 조건을 만들 수 있습니다.

Python
 
# 올바른 예
if age >= 20 and has_id == True:
    print("성인입니다.")

4. elif와 else 사용

여러 개의 조건을 검사할 때는 if 다음에 elif와 else를 사용할 수 있습니다. elif는 여러 조건을 순차적으로 확인하며, else는 위의 모든 조건이 거짓일 때 실행될 코드를 지정합니다.

Python
 
if x > 10:
    print("x는 10보다 큽니다.")
elif x == 10:
    print("x는 10과 같습니다.")
else:
    print("x는 10보다 작습니다.")

5. 단일문(Single-line statement)

if 문은 한 줄에 작성할 수도 있습니다. 단, 이 방식은 코드가 짧고 가독성을 해치지 않을 때만 사용하는 것이 좋습니다.

Python
 
if x > 5: print("x는 5보다 큽니다.")

 

 

추가질문)

들여쓰기에서 3칸만 하면 에러나나요?

네, 파이썬에서 들여쓰기를 3칸만 하면 에러가 발생할 수 있습니다.  // 발생할 수 있다고 했지, 꼭 에러가 난다고 하지 않았다.

중요한건 4칸 띄우고, 아래 문장에서는 3칸 띄우고 이렇게 동일하지 않으면 에러가 나는 것을 확인할 수 있다.

직접 칸수를 가지고 해보기 바랍니다.

 

★ 즉, 무엇이냐면 4칸으로 모두 동일하게 타이핑 하는 습관을 가지기 바랍니다. 또는 탭을 사용바랍니다.

 

파이썬의 공식 스타일 가이드(PEP 8)에서는 들여쓰기를 공백 4칸으로 통일하는 것을 권장합니다. 하지만 4칸이 아니더라도 같은 블록 내에서는 들여쓰기 칸 수를 동일하게 유지해야 합니다.

예를 들어, 아래 코드처럼 if 문 내부의 두 줄을 모두 3칸으로 들여쓰기하면 에러가 발생하지 않습니다.

Python
 
x = 10
if x > 5:
   print("x는 5보다 큽니다.")
   print("조건이 충족되었습니다.")

하지만, 아래 코드처럼 같은 블록 내에서 들여쓰기 칸 수가 다르면 IndentationError가 발생합니다.

Python
 
x = 10
if x > 5:
   print("x는 5보다 큽니다.")
    print("조건이 충족되었습니다.") # 이 줄은 4칸으로 들여쓰기되어 오류 발생

결론적으로, 파이썬은 들여쓰기 칸 수가 일관성이 있는지 여부를 중요하게 생각합니다. 따라서 들여쓰기를 할 때는 통일된 칸 수를 사용하는 것이 중요하며, 일반적으로 가장 널리 사용되는 공백 4칸을 사용하는 것이 좋습니다.

 

추가질문)

5칸 하면 에러 나나요?

네, 파이썬에서 들여쓰기를 5칸으로 하더라도 에러는 나지 않습니다.

파이썬에서 중요한 것은 들여쓰기의 칸 수가 아니라, 들여쓰기의 일관성입니다.

다시 말해, 한 코드 블록 내에서는 동일한 칸 수로 들여쓰기하면 됩니다. 예를 들어, 아래와 같이 5칸으로 통일하면 에러 없이 정상적으로 실행됩니다.

Python
 
x = 10
if x > 5:
     print("x는 5보다 큽니다.")
     print("조건이 충족되었습니다.")

하지만, 파이썬 커뮤니티에서는 공백 4칸을 표준으로 사용하도록 권장합니다(PEP 8). 따라서 다른 개발자와 협업하거나 깔끔하고 가독성 좋은 코드를 작성하고 싶다면 4칸 들여쓰기 규칙을 따르는 것이 좋습니다.

결론적으로, 들여쓰기 칸 수가 5칸이라고 해서 에러가 발생하지는 않지만, 코드의 통일성을 위해 공백 4칸을 사용하는 것을 권장합니다.

 

 

정리하자면)

말씀하신 대로 IDLE 셸(Shell)에서 1칸만 들여쓰기해도 즉시 에러가 발생하지 않습니다.

IDLE 셸은 한 줄씩 코드를 입력하고 실행하는 방식이라서, if 문을 사용하면 다음과 같이 동작합니다.

Python
 
>>> if True:
...  print("hello") # 1칸 들여쓰기
...
hello
>>>

if True:를 입력하고 엔터를 누르면 ...가 나타나는데, 이때 1칸이든 3칸이든 5칸이든 들여쓰기를 하고 다음 줄에 print() 함수를 입력하면 정상적으로 동작합니다. 이는 셸이 코드 블록의 종료 시점을 사용자가 빈 줄을 입력해주는 것으로 판단하기 때문입니다.

하지만 실제 .py 파일을 작성할 때는 다릅니다. 파이썬은 파일 전체의 들여쓰기 규칙이 일관되지 않으면 IndentationError를 발생시킵니다.

예를 들어, 아래 코드를 test.py 파일로 저장하고 실행하면 에러가 발생합니다.

Python
 
# test.py
x = 10
if x > 5:
 print("x는 5보다 큽니다.")  # 1칸 들여쓰기
    print("조건이 충족되었습니다.") # 4칸 들여쓰기 -> 에러 발생

결론적으로, IDLE 셸에서는 한 줄씩 실행되기 때문에 들여쓰기 오류가 눈에 띄지 않지만, 실제 코드를 파일로 작성할 때는 들여쓰기 규칙을 반드시 일관성 있게 지켜야 합니다. 일반적으로는 공백 4칸을 사용하는 것을 강력히 권장합니다.

반응형

콘텐츠 내 자동삽입광고