Day 3
오늘은 조건문 if, else, elif, 논리 연산자, 코드 블록, 글로벌 로컬 네임스페이싱등입니다.
마지막에는 간단한 어드벤쳐 게임을 만드는 Project를 진행합니다.
if, else, elif는 프로그램의 상황에 따라 다른 행동을 하게 만들때에 사용이 됩니다.

간단하게 롤러코스터를 주제로 코드르 짜봅시다.

조건문을 작성할때 콜론(;)과 들여쓰기는 중요합니다.
콜론의 경우 여기서부터 실행할 블록이 시작되요 라는 것을 Python에게 알려줍니다.
들여쓰기 같은 경우에는 반복문, 조건문의 코드에 포함이 되었는지 {}대신에 들여쓰기로 구분이 됩니다.
만약 들여쓰기를 하지 않으면 SyntexError가 발생합니다.
위 이미지의 >, <, = 는 비교연산자라고 합니다.

%는 수학연산자에서 나머지를 구하는 연산자입니다.
정수 나눗셈 후 남은 나머지를 구할 때 사용됩니다.

사용자가 입력한 수를 % 2했을 때에 짝수면 Even 홀수이면 Odd를 출력하는 코드입니다.
- 짝수, 홀수로 구분 하지 않아도 참과 거짓으로도 구분하기도합니다.
중첩된 if, elif란?
조건문 안에 또 다른 조건문이 들어 있는 구조를 말합니다.
즉 어떤 조건이 참일때만 추가적인 조건을 확인하는 방식입니다.
예시)
//if, else같이 사용
if condition:
if another condition:
do this
else:
do this
else:
do this
//elif문 추가해서 중첩
if condition:
if another condition:
do this
elif another condition:
do this
else:
do this
else:
do this

사진 속 코드 내용을 보면 if문 안에 중첩 if문을 사용한 것을 확인할 수 있습니다.
일단은 코드 내용에 대해 간단히 설명을 하자면
키가 기준인 120보다 클때 중첩된 if문이 실행이되고 조건에 거짓일 경우 else문 실행 후 다음 코드가 없기에 코드 실행은 중지합니다.
중첩된 if문 실행전에 사용자에게 나이를 물어보고 나이를 입력 받도록 되어있습니다.
나이가 18살보다 같거나 작을경우 $7를 받고 만약 if문의 조건에 거짓일 경우 else문이 실행후 더 이상 진행할 코드가 없기에 코드실행은 중지합니다.
elif보다 if중첩을 많이 하는데 그이유는?
- if를 연속으로 쓰면 이후에 추가 조건을 붙이거나 빼기 쉬움.
- elif로 너무 길게 엮어놓으면 변경이 어렵고 버그가 생기기 쉬워요.



bmi계산 결과를 중첩 if, elif문을 사용해서 bmi값별로 어떤 값을 출력할 것인지? 코드 작성하는 연습입니다.

bmi 계산 값 = 24.835646457268076
bmi값이 24.83...으로 최종 조건문이 True인 경우의 마지막 코드를 실행 = 정상체중
지금까지 조건이 True일 경우 다른 조건문은 무시하고 해당 조건문을 실행하는 방법에 대해서 알아보았습니다.
이번에는 모든 조건을 확인해야 할 경우에 대해서 알아보겠습니다.
모든 조건을 확인하는 방법은 간단합니다.
각각의 if문을 분리해서 모든 조건을 각각 검사학고 실행을 합니다.
//if, elif, else
if 조건1:
...
elif 조건2:
...
else:
...
// 한 가지 조건만 실행
// 조건1이 True이면 elif, else는 무시됨
// 조건1이 거짓이고 조건2가 참이면 elif만 실행, else는 무시
// 순차적으로 한번만 실행
// 각각 독립된 if문
if 조건1:
...
if 조건2:
...
if 조건3:
...
// 모든 조건을 각각 확인
// 조건1, 조건2, 조건3이 모두 참이면 모두 실행
// elif, else가 없는 독립적인 if문

조건에 맞게 피자 주문 코드를 작성하는 것입니다.
todo: work out how much they need to pay based on their size choice.
todo: work out how much to add to their bill based on their pepperoni choice.
todo: work out their final amount on whether if they want extra cheese.
Small Pizza: $15
Medium Pizza: $20
Large Pizza: $25
Add pepperoni for small Pizza (Y or N): +$2
Add pepperoni for medium or large Pizza (Y or N): +$3
Add extra cheese for any size pizza (Y or N): +$1

처음에는 무식하게 if문 중첩으로 사용하면서 각각 계산하고 총 가격을 출력을 했는데
다 작성하고 실행해보니까 코드가 너무 복잡해서 수정했습니다.
논리연산자는 여러 조건을 결합하거나 조건의 참/거짓을 반전시켜 복합적인 논리 판단을 할 때 사용하는 연산자입니다.
결과 값은 항상 True/False 참/거짓의 불(bool/boolean)으로 반환됩니다.

a = True
b = False
print(a and b)
출력: False
활용)
if age >= 10 and height >= 120:
(나이와 키의 조건이 모두 만족해야 통과)
a = True
b = False
print(a or b)
출력: True
활용)
여러 조건 중 하나만 만족해도 통과할 때 사용
a = True
print(not a)
출력: False
활용)
특정 조건이 거짓일 때 실행하고 싶을 때 사용
Day3 project


몇가지의 조건의 선택지를 제시하면 사용자가 원하는 선택지 입력시 해당 결과 값을 출력해서 방 탈출? 같은 미니 프로젝트입니다.
