조건) 입력받은 나이에 따라 놀이동산 입장료를 출력합니다.
> 입장료 정가 : 2만원
> 1세~6세 미만 : 무료
> 6세~60세 미만 : 정가
> 60세 이상 : 정가의 50%
<소스>
age=int(input('나이입력: '))
price=20000
if 1<=age<6:
print('입장료는 무료')
elif 6<=age<60:
print(f'입장료는 {price}원')
elif age>=60:
print(f'입장료는 {price*0.5}원')
else:
print('1살 이상의 나이를 입력해 주세요.')
결과)
나이입력: 38
입장료는 20000원
나이입력: 5
입장료는 무료
나이입력: 0
1살 이상의 나이를 입력해 주세요.
소스설명)
이 파이썬 코드는 사용자의 나이를 입력받아 놀이공원 입장료를 계산하는 프로그램입니다. 코드의 각 부분을 자세히 설명해 드릴게요.
1. 나이 입력 및 가격 설정
age=int(input('나이입력: '))
price=20000
- input('나이입력: ') : input() 함수는 사용자에게 콘솔(터미널)에 '나이입력: '이라는 메시지를 보여주고, 사용자가 키보드로 값을 입력할 때까지 기다립니다. 사용자가 입력한 값은 문자열 형태로 반환됩니다. 예를 들어, 사용자가 25를 입력하면 '25'라는 문자열이 됩니다.
- int(...) : input() 함수가 반환한 문자열을 정수(integer) 형태로 변환합니다. if 조건문에서 숫자를 비교하려면 정수형이 필요하기 때문에 이 변환 과정이 필수적입니다.
- age = ... : 변환된 정수 값을 **age**라는 변수에 저장합니다. 이제 age 변수는 사용자가 입력한 나이 값을 가리킵니다.
- price = 20000 : **price**라는 변수에 기본 입장료인 20000을 저장합니다. 이 값은 이후에 할인 계산에 사용됩니다.
2. 조건문 (if-elif-else)을 사용한 입장료 계산
if 1<=age<6:
print('입장료는 무료')
elif 6<=age<60:
print(f'입장료는 {price}원')
elif age>=60:
print(f'입장료는 {price*0.5}원')
else:
print('1살 이상의 나이를 입력해 주세요.')
이 부분은 **if, elif, else**라는 조건문을 사용하여 age 변수에 저장된 값에 따라 다른 코드를 실행하는 구조입니다. 파이썬은 위에서부터 아래로 조건을 하나씩 확인하고, 맞는 조건이 있으면 해당 코드 블록을 실행한 후 전체 조건문을 빠져나옵니다.
- if 1<=age<6:
- if는 첫 번째 조건을 시작합니다. 1<=age<6는 복합 비교 연산자로, age가 1 이상이고 6 미만인지를 동시에 검사합니다.
- 만약 이 조건이 참(True)이면, print('입장료는 무료') 코드가 실행되어 "입장료는 무료"라는 메시지를 출력합니다.
- elif 6<=age<60:
- elif는 'else if'의 줄임말로, if 조건이 거짓(False)일 때 다음으로 검사할 조건을 지정합니다.
- 이 조건은 age가 6 이상 60 미만인지를 검사합니다.
- 조건이 참이면, print(f'입장료는 {price}원') 코드가 실행됩니다. f-string을 사용하여 변수 price의 값(20000)을 문자열 안에 삽입하여 "입장료는 20000원"이라는 메시지를 출력합니다.
- elif age>=60:
- 앞의 두 조건이 모두 거짓일 때, age가 60 이상인지를 검사합니다.
- 조건이 참이면, print(f'입장료는 {price*0.5}원') 코드가 실행됩니다. price * 0.5는 20000의 절반인 10000을 계산하고, 이 값을 출력합니다.
- else:
- 위의 모든 if와 elif 조건이 모두 거짓일 경우 마지막으로 실행되는 부분입니다.
- 즉, age가 1 미만일 경우(예: 0, -1 등) 이 코드가 실행되며, "1살 이상의 나이를 입력해 주세요."라는 메시지를 출력합니다.
이 코드는 사용자의 나이에 따라 명확하게 다른 입장료를 적용하는 논리를 잘 구현하고 있습니다.
추가질문)
else: 에서 콜론은 왜 찍나요?
else:에서 **콜론(:)**은 해당 구문이 끝났다는 것을 나타내고, 다음에 실행될 코드 블록이 시작된다는 것을 알려주는 역할을 합니다.
콜론의 역할
파이썬에서 콜론은 주로 다음과 같은 구문에서 사용됩니다.
- 코드 블록의 시작: if, elif, else 외에도 for, while, def(함수), class 등 특정 구문의 헤더 끝에 붙어 그 아래에 들여쓰기된 코드가 **하나의 묶음(블록)**임을 명시적으로 알려줍니다.
- 문법적 약속: 콜론을 사용하지 않으면 파이썬 인터프리터가 어디서부터 코드 블록이 시작되는지 알 수 없기 때문에 문법 오류가 발생합니다.
예를 들어, if와 else 문을 살펴보면,
if score >= 90:
print('A학점입니다.') # 이 코드가 if 블록에 속함
else:
print('90점 미만입니다.') # 이 코드가 else 블록에 속함
여기서 콜론이 없다면, print('A학점입니다.')가 if 조건에 종속된 코드인지, 아니면 독립적인 코드인지 명확하지 않습니다. 콜론을 사용함으로써 파이썬은 **들여쓰기(indentation)**된 모든 코드를 하나의 블록으로 인식하고, 해당 조건이 참일 때만 그 블록 전체를 실행하게 됩니다.
결론적으로, else:의 콜론은 "이 조건이 충족되지 않으면, 바로 이어서 들여쓰기된 코드를 실행해라"는 의미의 문법적 규칙이라고 생각하시면 됩니다.
추가질문)
각 조건부분에 콜론을 찍는 이유가 해당 구문이 끝났다는 것을 나타낸다는건가요?
네, 정확히 맞습니다. if, elif, else와 같은 조건문 끝에 콜론(:)을 찍는 것은 **'해당 구문이 끝났고, 이제부터 이 조건에 종속된 코드 블록이 시작된다'**는 것을 파이썬에게 알려주는 약속입니다.
콜론과 들여쓰기의 역할
파이썬에서는 콜론과 **들여쓰기(indentation)**가 함께 작동하여 코드의 구조를 만듭니다.
- 콜론(:): 새로운 코드 블록이 시작될 것을 선언합니다. 마치 "자, 이제부터 이 조건에 대한 내용을 말할 거야"라고 예고하는 것과 같습니다.
- 들여쓰기(Indentation): 콜론 다음에 오는 줄부터는 일정 간격(보통 4칸 공백)을 들여쓰기하여, 앞선 조건문에 종속된 코드임을 명확하게 나타냅니다. 이 들여쓰기가 끝나는 지점에서 해당 블록도 끝난 것으로 간주됩니다.
예를 들어, 아래 코드에서 콜론과 들여쓰기가 없다면 print() 문이 if 조건에 속한 것인지, 아니면 독립적인 코드인지 알 수 없습니다.
# 콜론과 들여쓰기를 사용한 올바른 예
if age >= 60:
print('입장료는 50% 할인됩니다.')
print('할인된 금액을 확인하세요.')
위 코드에서 print() 문이 2개 있지만, 모두 같은 들여쓰기를 하고 있으므로, if 조건이 **참(True)**일 때 두 줄 모두 실행됩니다.
요약하자면, 콜론은 블록의 시작을 알리는 문법적 표시이며, 들여쓰기는 그 블록의 범위를 정의하는 역할을 합니다. 이 두 가지가 함께 작동하여 파이썬 코드를 명확하고 읽기 쉽게 만들어주는 핵심적인 요소입니다.
★ 매우중요 질문)
if score >= 90:
print('A학점입니다.')
print('매우 잘했어요!') 여기서 두개의 print문이 들여쓰기를 했는데요. 들여쓰기 한 이 두개의 print문이 콜론 다음의 범위 영역인건가요?
네, 맞습니다. 콜론(:) 다음의 들여쓰기된 모든 부분이 바로 해당 조건의 '범위' 또는 '블록'에 속하는 코드입니다.
파이썬은 콜론과 들여쓰기를 사용하여 코드의 구조를 명확하게 만듭니다.
- if score >= 90:: 여기서 콜론은 "만약 score가 90 이상이면, 이제부터 들여쓰기된 코드들을 실행할 거야"라는 신호 역할을 합니다.
- print('A학점입니다.'): 이 코드는 들여쓰기가 되어 있으므로, 위의 if 조건이 **참(True)**일 때만 실행됩니다.
- print('매우 잘했어요!'): 이 코드 역시 앞의 코드와 동일한 깊이로 들여쓰기되어 있기 때문에, 같은 블록에 속합니다. 따라서 if 조건이 참일 때 함께 실행됩니다.
-----> 같은 블록에 속합니다.
만약 두 번째 print문의 들여쓰기를 제거한다면, 그 코드는 if 블록에서 벗어나게 되어 조건과 상관없이 항상 실행됩니다.
요약하자면, 콜론은 블록의 시작을 알리고, 들여쓰기는 그 블록의 끝을 정의하는 중요한 문법 규칙입니다. 이 규칙 덕분에 파이썬은 코드를 읽고 이해하기 쉽게 만들어줍니다.
'파이썬(Python)' 카테고리의 다른 글
| if~ in ~ elif 에서 in 연산자는 무엇인가? (in 연산자) (0) | 2025.08.22 |
|---|---|
| 파이썬, 연습) 사용자가 입력한 결제 수단에 따라 다른 이동 수단을 추천해 주는 프로그램 (0) | 2025.08.22 |
| 파이썬에서 선택문의 종류는 무엇이 있는지 정리 및 if문 (0) | 2025.08.21 |
| 파이썬, 문제풀이 / 친구 등록, 검색, 검색 후 출력 프로그램(2 of 2)-(중요) (1) | 2025.08.20 |
| 파이썬, 문제풀이 / 친구 등록, 검색, 검색 후 출력 프로그램(1 of 2) (0) | 2025.08.20 |
콘텐츠 내 자동삽입광고
