- 프롤로그
- 개발 첫걸음
- 파이썬 기초
- 파이썬 중급
- 파이썬 고급
- 내장 함수 톺아보기
- 예외와 에러 – 예상치 못한 상황에 대응하기 (v0.1)
- 변수의 범위 – 이름 검색의 범위
- 파이썬 심화
- 시퀀스와 반복자 – 반복과 순회를 자유자재로 다루기
- 데코레이터 – 함수의 기능을 강화하기
- 프로퍼티
- 제너레이터
- async와 await
- 객체로서의 클래스 – 클래스를 동적으로 정의하기
- 파이썬 프로젝트 실습
- 원카드 게임 만들기 (1)
- 원카드 게임 만들기 (2)
- 원카드 게임 만들기 (3) (작성중)
- 턴제 자동 전투 게임 만들기 (작성중)
- 실전 (파이썬 외적인 것들)
- 정규표현식 – 문자열을 검색하고 치환하기 (작성중)
- 유니코드 – 컴퓨터에서 문자를 표기하는 방법
- html, css, 인터넷 – 자동화 첫 걸음 내딛기
- 네트워크 – 인터넷으로 통신하는 방법
- 문서 – 문맥을 읽어보기
실컷 때릴 수 있는 허수아비
지금까지 배운 방법으로는 위에서 아래로, 순차적으로 한줄 한줄 실행하는 프로그램밖에 만들지 못합니다. 이제 조건을 만들어 프로그램의 분기를 만들어 볼텐데요, 간단한 예제를 통해 보면서 진행해보도록 합시다.
슈퍼파워 게임회사는 RPG 게임을 제작하고 있습니다. 초보 모험가를 위해 실컷 때릴 수 있는 허수아비를 세워두려고 합니다. 규칙은 다음과 같습니다.
- 허수아비의 체력은 100입니다.
- 플레이어의 공격을 수치로 입력받습니다.
- 허수아비의 체력을 넘는 공격을 준다면 허수아비가 쓰러집니다.
- 허수아비 체력을 밑도는 공격을 준다면 허수아비는 쓰러지지 않습니다.
- 공격력이 10 정도로 모자라다면 지나가던 개가 "아쉽네"라고 말합니다.
일단 실행 코드와 결과를 봅시다. 코드의 ##1##을 클릭하면 설명으로 바로 이동합니다.
실행 코드
health = 100 ##a_1##
attack = int(input()) ##a_2##
if attack >= health: ##a_3##
print("털썩! 허수아비가 쓰러졌습니다!") ##a_4##
else: ##a_5##
print("허수아비가 쓰러지지 않았네요.") ##a_6##
if attack >= health - 10: ##a_7##
print("지나가던 개 : 아쉽네") ##a_8##
결과
-----첫번째 실행-----
200
털썩! 허수아비가 쓰러졌습니다!
-----두번째 실행-----
70
허수아비가 쓰러지지 않았네요.
-----세번째 실행-----
95
허수아비가 쓰러지지 않았네요.
지나가던 개 : 아쉽네
이제 설명의 차례입니다. 천천히 한 문장 한 문장 음미하며 읽도록 합시다.
a_1(1.) 설명
health = 100
허수아비의 체력을 담는 health
라는 변수를 정의하여, 초깃값 100
으로 두었습니다. 이 변수의 값은 이후에 입력받은 값을 비교하는 데 쓰이고 프로그램 내에서 다시 변하지는 않습니다.
a_2(2.) 설명
attack = int(input())
int(input())
이라는 요상한 모양이 등장했습니다. int
라는 것이 정확히 어떤 역할인지는 모르나, 우리는 변수의 종류를 배울 때 int
라는 정수형이 존재한다는 것을 배웠습니다. 여기서 int
는 소괄호 안의 값을 정수형으로 변환하겠다!
라는 뜻으로 쓰입니다. 쓰는 방법은 print
와 같은 함수처럼 소괄호를 이용합니다. 일반적인 사용법은 내장 함수를 참조해주시고, 좀 더 정확하고 심화적인 내용은 클래스를 참조하세요.
우선 두 개로 분리하여 생각합시다. 바깥쪽을 감싸고 있는 int( ... )
와, 내부의 input()
입니다. 소괄호가 여러 개 등장한다면 안의 것 부터 작동한다고 생각하세요. 즉 input()
이 먼저 작동하고 그 결과값이 int( ... )
에 적용합니다. 그러니까 attack = int(input())
은, 우선 사용자로부터 입력을 받고, 그 값을 정수형으로 변환하도록 하고, 그 값을 attack
이라는 새로운 변수를 정의하면서 초기값으로 넣는다는 뜻입니다.
input()
의 결과값은 무조건 문자열(str
)이기 때문에 숫자를 입력받는다 해도 '200'
과 같은 문자열을 받게 됩니다. 앞서 배웠던 산술 연산자를 이용하기 위해서는 이 값을 숫자로 변환하여야 하기 때문에 이 같은 과정은 필수입니다.
a_3(3.) 설명
if attack >= health:
새로운 if
라는 키워드가 등장했습니다. >=
라는 비교 연산자(Comparison Operator) 가 등장하였고 콜론(:
)도 눈에 띄네요.
if
는 앞으로 if
문, 혹은 조건문이라고도 불리우는 문법의 핵심 키워드입니다. 우리는 if
와 그 바로 뒤에 따라오는 조건을 통해 프로그램의 흐름을 제어할 수 있습니다. 여기서는 attack >= health
라는 게 조건입니다. 엑셀의 if
함수를 써본 경험이 있다면 이해가 빠를 수도 있겠습니다.
attack >= health
란 attack이 health보다 크거나 같은가?
라는 뜻이며, 이 조건을 충족한다면 뒤따라오는 블록(block)으로 진행하도록 하고, 충족하지 않다면 그 블록은 아예 건너뛰도록 합니다.
콜론(:
)은 새로운 블록을 시작하라는 뜻입니다. 블록 내부에서부터 들여쓰기가 시작되고, 블록을 끝내려면 들여쓰기를 원상복귀하면 됩니다. 들여쓰기는 띄어쓰기 4개를 원칙으로 합니다. 콜론을 쓰지 않고서는 새로운 블록을 시작할 수 없습니다. 블록 안에는 또 다른 블록이 포함될 수 있으며, 들여쓰기를 그만큼 더 추가합니다.
a_4(4.) 설명
print("털썩! 허수아비가 쓰러졌습니다!")
새로운 블록으로 시작했으니 들여쓰기가 띄어쓰기 4개로 이루어졌습니다. 바로 앞 조건문에서 조건이 충족된다면 이 블록이 실행이 됩니다. 결과의 첫번째 실행에서는 100
보다 높은 200
을 입력하였고, 조건을 충족하여 print
함수가 호출됩니다. 하지만 두번째 실행에서 70
을 입력하였고, 조건을 충족하지 못해 이 블록은 건너뛰게 됩니다.
a_5(5.) 설명
else:
새로운 키워드가 등장했으나, 그 전에 다시 들여쓰기가 원상복귀 되었다는 점을 유념해주세요. 즉 앞선 블록이 끝났다는 뜻입니다.
여기서는 else
라는 키워드가 등장합니다. 조건문에서 else
는 if
와 마찬가지로 아주 중요한 키워드입니다. else
는 홀로 등장할 수 없습니다. 반드시 앞쪽의 if
와 짝지어집니다.
기억을 더듬어볼까요, 앞선 조건은 attack >= health
이었고, 우리가 attack
을 입력받고 health
는 100
으로 두었었죠. else
의 뜻은 if의 조건이 충족되지 않으면 다음 블록을 실행하라
입니다. 200
을 입력받았을 때에는 조건에 충족되기 때문에 if
가 지니고 있는 블록이 실행되며, else
는 실행되지 않습니다. 하지만 70
과 95
와 같은 경우는 앞선 조건이 충족되지 않으므로 if
의 블록은 건너뛰되, else
가 가지고 있는 블록이 즉시 실행됩니다.
else
는 특별한 조건을 받지 않습니다. 곧 바로 콜론(:
)이 등장하여 새 블록을 엽니다.
a_6(6.) 설명
print("허수아비가 쓰러지지 않았네요.")
새로운 블록이 시작했으니 다시 들여쓰기가 적용되었습니다.
a_7(7.) 설명
if attack < 10:
들여쓰기가 계속 유지되고 있습니다. 그러므로 여기서의 if
문은 else
의 블록 안에 포함된다고 말할 수 있습니다. 이 if
문 또한 바깥의 if
와 완전히 동일한 메커니즘을 가지고 있습니다. 조건이 충족되면 바로 뒤따라오는 블록을 실행시킨다는 것이죠.
여기서 조건은 attack >= health - 10
입니다. 비교 연산자는 산술 연산자보다 나중에 처리됩니다. 즉 health – 10이 먼저 처리되고, 그 결과값인 90
을 이용해 attack >= 90
과 같은 형태가 만들어집니다. 70
은 충족하지 못하고 95
는 충족하게 되겠네요.
콜론(:
)으로 새로운 블록을 시작합니다.
a_8(8.) 설명
print("지나가던 개 : 아쉽네")
새로운 블록이 시작되어 들여쓰기가 이중 적용되었습니다. 왼쪽으로부터 코드가 점점 더 동떨어지고 있네요.
결과적으로 이 print
함수는 attack
이 90 ~ 99의 범위에 있을 때 실행됩니다. 왜 그럴까요? if
와 else
가 중첩으로 하여 존재하기 때문입니다. 조건만 생각하여 순서를 상기해보면 다음과 같습니다.
attack >= health
가 충족하지 않을 때 (즉 attack < health 일 때)attack >= health - 10
이 충족할 때
1번 조건이 첫번째 if 문에서 갈렸던 분기이고, 2번 조건이 두번째 if문에서의 조건입니다. 1번과 2번이 동시에 충족해야 지나가던 개가 "아쉽다"며 오지랖을 부릴 수 있게 됩니다.
핵심 개념 정리
위 예제를 통해 새롭게 알게 된 사실을 정리해봅시다.
if
는 조건을 이용하여 프로그램의 분기를 만들때 쓰는 키워드입니다.else
는 짝지어진if
의 조건에 충족하기 못할 때 실행됩니다.else
를 반드시 사용할 필요는 없습니다.- 비교 연산자(Comparison Operator) 란 주로 조건에 쓰는 연산자입니다.
if
와else
는 실행 범위를 바로 뒤따라오는 블록(block) 으로 제한합니다.- 블록은 콜론(
:
)으로 시작할 수 있으며, 동일한 들여쓰기(공백 4칸) 동안 블록을 유지할 수 있고, 블록을 끝내려면 들여쓰기를 원상복귀 하면 됩니다. 블록은 중첩될 수 있습니다. if
,else
, 조건, 실행 블록을 통틀어 조건문(if statement) 이라고 말합니다.
그리고 앞서 배웠던 상식은 다소 금이 갔습니다.
- 명령은 무조건 위에서 아래로 차례대로 실행된다? 기본적으로는 그렇지만 조건에 따라 건너뛸 수도 있다!
비교 연산자(Comparison Operator)
우리는 앞서 대입 연산자(=
), 각종 산술 연산자(+
, -
등)를 배웠습니다. 이번에는 새로운 비교 연산자입니다. 비교 연산자의 특징은 불리언(boolean) 값을 결과로 내놓는다는 점입니다. 앞서 변수의 종류를 논할 때 우리는 불리언을 짧게나마 소개하고 지나갔습니다. 하지만 다시 꺼내 봅시다.
bool
: 불리언(boolean)입니다.True
혹은False
값 밖에 가지지 못합니다.
True란 참이고, False는 거짓입니다. 이분법적인 사고를 현대사회에서는 지양하라고는 하지만 컴퓨터의 세계에서는 흔한 논리입니다. if
에서 조건을 충족하는지, 그렇지 않은지 판단할 때는 이 불리언 값을 활용합니다.
if 100 > 200:
print("100은 200보다 크다는 건 참이다.")
else:
print("100은 200보다 크다는 건 거짓이다.")
위 예제에서 100 > 200
은 False
값을 내놓습니다. 즉 if False:
로 작동한다는 것입니다. if
는 조건이 False
이므로 조건에 충족되지 않았다고 판단하고 else
블록을 찾아 실행시킵니다.
100은 200보다 크다는 건 거짓이다.
하지만 다음 예제와 같이 조건을 참으로 만들면 if
블록이 실행되겠지요.
if 300 > 200:
print("300은 200보다 크다는 건 참이다.")
else:
print("300은 200보다 크다는 건 거짓이다.")
300은 200보다 크다는 건 참이다.
bool
형은 물론 숫자나 문자열 같은 변수이기 때문에 대입할 수 있습니다.
condition = 300 > 20
if condition:
print("300은 200보다 크다는 건 참이다.")
else:
print("300은 200보다 크다는 건 거짓이다.")
300은 200보다 크다는 건 참이다.
비교 연산자의 종류
비교 연산자 | 설명 |
---|---|
a == b |
a 와 b 가 같다 |
a != b |
a 와 b 가 다르다 |
a > b |
a 가 b 보다 크다 |
a < b |
a 가 b 보다 작다 |
a >= b |
a 가 b 보다 크거나 같다 |
a <= b |
a 가 b 보다 작거나 같다 |
논리 연산자 (Logical Operator)
여러 개의 비교 연산자를 동시에 사용하고 싶다고 가정합시다. 앞서 허수아비를 거의 쓰러뜨렸지만 아쉽게 그러지 못했던 상황을 기억하시나요? 90 ~ 99의 공격력으로 때린 것만 조건으로서 활용하고 싶습니다. health 변수는 조건을 좀 더 명확하게 보기 위해 삭제하도록 하겠습니다. 다음 코드를 실행해 보세요.
attack = int(input())
if attack >= 90:
if attack < 100:
print("지나가던 개 : 아쉽구려")
95
지나가던 개 : 아쉽구려
조건문을 중첩으로 두어 조건 2개가 둘다 만족해야 print
되도록 코드를 짰습니다. 하지만 파이썬에서는 논리 연산자를 이용해 두 비교 연산자를 결합할 수 있습니다. 다음 코드를 보세요.
attack = int(input())
if attack >= 90 and attack < 100:
print("지나가던 개 : 아쉽구려")
95
지나가던 개 : 아쉽구려
결과는 동일합니다. and
라는 새로운 키워드가 등장했습니다. 아주 쉽고 간편하게 나타낼 수 있지 않나요? 논리 연산자는 피연산자와 결과값 모두 boolean
형을 활용하는 연산자입니다. 논리 연산자의 종류는 3가지가 있고, 설명은 다음과 같습니다.
논리 연산자의 종류
연산자 | 설명 |
---|---|
x or y |
x 와 y 중 하나라도 True 이면, True 이다 |
x and y |
x 와 y 모두 True 이어야 True 이다 |
not x |
x 가 False 이면 True 이다 |
논리 연산자 결과 표
x |
y |
x or y |
x and y |
not x |
---|---|---|---|---|
False |
False |
False |
False |
True |
True |
False |
True |
False |
False |
False |
True |
True |
False |
True |
True |
True |
True |
True |
False |
여러 개의 분기를 한꺼번에 만들기 (elif
)
지나가던 개가 오지랖을 오질나게 부린다고 가정합시다. 너무 맥없이 때리면 젊은이가 힘이 없다 혀를 차고, 너무 세게 때리면 다 부술 일 있냐며 화내는 등 반응을 추가하여 봅시다. 이번 예제에서도 health
변수를 삭제했습니다.
attack = int(input())
if attack >= 200:
print("지나가던 개 : 전부 다 부실 일 있나?? 왜 이렇게 세게 치누")
else:
if attack >= 100:
print("지나가던 개 : 오, 허수아비를 쓰러뜨렸군.")
else:
if attack >= 90:
print("지나가던 개 : 아깝소")
else:
if attack >= 10:
print("지나가던 개 : 힘좀 더 쓰지 그래..?")
else:
print("지나가던 개 : 요새 젊은이들은 힘이 없어.. 쯧쯧...")
200
, 100
, 90
, 10
의 기준점을 새롭게 만들어서 다른 메시지를 출력할 수 있도록 했습니다. 결과는 다음과 같습니다.
----- 1번째 실행 -----
300
지나가던 개 : 전부 다 부실 일 있나?? 왜 이렇게 세게 치누
----- 2번째 실행 -----
150
지나가던 개 : 오, 허수아비를 쓰러뜨렸군.
----- 3번째 실행 -----
95
지나가던 개 : 아깝소
----- 4번째 실행 -----
50
지나가던 개 : 힘좀 더 쓰지 그래..?
----- 5번째 실행 -----
5
지나가던 개 : 요새 젊은이들은 힘이 없어.. 쯧쯧...
뭔가 석연찮습니다. 흐름을 제어하기 위해 계속해서 else
블록 안에 if
를 중첨해서 사용하고 있습니다. 이대로 계속 가다간 블록이 끝도 없이 늘어날 것 같습니다. 이러한 상황을 해결하기 위해 elif
라는 새로운 키워드를 활용하여 흐름을 제어해봅시다.
attack = int(input())
if attack >= 200:
print("지나가던 개 : 전부 다 부실 일 있나?? 왜 이렇게 세게 치누")
elif attack >= 100:
print("지나가던 개 : 오, 허수아비를 쓰러뜨렸군.")
elif attack >= 90:
print("지나가던 개 : 아깝소")
elif attack >= 10:
print("지나가던 개 : 힘좀 더 쓰지 그래..?")
else:
print("지나가던 개 : 요새 젊은이들은 힘이 없어.. 쯧쯧...")
오! 보기에 깔끔해졌습니다!
elif
는 바로 앞서 실행된 조건에 대해서 충족하지 않으면 다른 조건을 적용하여
흐름을 제어합니다. elif
는 if
다음부터 존재할 수 있습니다. elif
는 하나도 없어도 되고, 아주 많은 수가 있어도 됩니다. 조건과 실행 블록을 활용하는 법은 if
와 동일합니다. else
는 항상 마지막에 단 하나만 등장합니다. else
는 없어도 상관없습니다.
앞서 if
와 else
의 구문을 포함하여 조건문이라고 했는데요, 여기에 elif
도 포함시킵시다.
if
,elif
,else
, 그 조건과 실행 블록을 모두 포함하여 조건문 이라고 합니다.
유의사항
if는 무조건 조건을 검사합니다.
아래와 같은 코드를 봅시다.
attack = int(input())
if attack >= 200:
print("지나가던 개 : 전부 다 부실 일 있나?? 왜 이렇게 세게 치누")
if attack >= 100:
print("지나가던 개 : 오, 허수아비를 쓰러뜨렸군.")
if attack >= 90:
print("지나가던 개 : 아깝소")
if attack >= 10:
print("지나가던 개 : 힘좀 더 쓰지 그래..?")
250
지나가던 개 : 전부 다 부실 일 있나?? 왜 이렇게 세게 치누
지나가던 개 : 오, 허수아비를 쓰러뜨렸군.
지나가던 개 : 아깝소
지나가던 개 : 힘좀 더 쓰지 그래..?
여기서는 앞서 살펴보았던 예제와 달리 elif
가 아닌 if
가 독립적으로 쓰였습니다. 이 때에는 모든 조건을 차례로 검사하게 되므로 200
이상이라면 모든 print
가 동작하게 될 것입니다.
비교 연산자의 양쪽에는 무조건 값이 있어야 합니다.
if num >= 0 and <= 1000:
같은 형태는 에러입니다. if num < 0 or num > 1000
처럼 써야 올바른 형태입니다.
블록을 마음대로 시작하면 에러가 발생합니다.
연산자와 변수 사이의 공백은 들어가도 되고 들어가지 않아도 되지만, 코드의 들여쓰기(공백 4칸)는 엄연한 문법이므로 잘 지켜야 합니다. 다른 프로그래밍 언어에서는 중괄호({}
)로 블록을 구분하기 때문에 들여쓰기가 의무사항은 아니지만, 파이썬에서는 의무사항입니다!
같은지 판단할 때 대입 연산자를 사용하지 마세요.
대입 연산자(=
)는 대입하는 동작을 뜻할 뿐이지 같다고 비교하지 않습니다. 같은지 비교하는 연산자는 ==
입니다. if
의 조건에는 거의 웬만하면 ==
가 들어간다고 보시면 되겠습니다.
else
, elif
는 같은 블록에 있는 if
와 짝지어집니다.
중첩된 if
에서 유의해주시면 되겠습니다.
더 나아가기
truthy value와 falsy value (추가 예정)
—
연습 문제
if
는 무슨 역할인가?- 비교 연산자의 종류 여섯 가지는 무엇인가?
- 논리 연산자의 종류 세 가지는 무엇인가?
if
의 조건에는 주로 어떤 연산자가 들어가는가?:
의 역할은 무엇인가?- 블록을 계속 유지시키려면 어떻게 해야 하는가?
- 블록을 끝내려면 어떻게 해야 하는가?
- 블록 안에 블록을 포함되는 것이 가능한가?
else
는 무슨 역할인가?elif
는 무슨 역할인가?else
에는 조건이 들어갈 수 없는가?else
는 조건문에서 가장 마지막에만 와야 하는가?
프로그래밍 문제
-
하나의 숫자를 입력받습니다.
0
미만이거나1000
을 초과하는 숫자가 입력되었을 경우범위를 벗어났습니다
라고 출력합니다. -
하나의 점수를 입력받습니다. 100점이면
A+
, 90~99점이면A
, 80~89점이면B
, 70~79점이면C
, 69점 이하면F
를 출력합니다. -
0~200 범위의 숫자를 입력받습니다. 범위를 벗어나면
범위를 벗어났습니다
라고 출력합니다. 숫자가 한 자리수면한자리 수
, 두 자리수면두자리 수
, 세 자리수면세자리 수
라고 출력합니다. -
작은 수와 큰 수를 먼저 입력받습니다. 다음 마지막 수를 입력받는데요, 이 마지막 수가 두 수의 범위 밖에 있다면
범위를 벗어났습니다
라고 출력하고, 두 수의 범위 내에 있다면, 가까이 있는 수를 출력하면서그 수와 가깝습니다
라고 출력하고, 두 수간의 차이가 같다면중간값입니다
라고 출력합니다.
예 : 20
과 50
이라고 입력한 후, 마지막 숫자에 따른 출력은 다음과 같습니다.
10
→범위를 벗어났습니다
30
→20과 가깝습니다
45
→50과 가깝습니다
35
→중간값입니다
프로그래밍 문제 정답
-
코드입니다.
num = int(input()) if num < 0 or num > 1000: print("범위를 벗어났습니다.")
-
코드입니다.
score = int(input()) if score == 100: print("A+") elif score >= 90: print("A") elif score >= 80: print("B") elif score >= 70: print("C") else: print("F")
-
코드입니다.
num = int(input()) if num < 0 or num > 200: print("범위를 벗어났습니다.") elif num // 100 > 0: print("세자리 수") elif num // 10 > 0: print("두자리 수") else: print("한자리 수")
-
코드입니다.
small = int(input("작은 수를 입력하세요 >> ")) big = int(input("큰 수를 입력하세요 >> ")) last = int(input("마지막 수를 입력하세요 >> ")) if small > last or big < last: print("범위를 벗어났습니다") else: small_dif = last - small big_diff = big - last if small_dif < big_diff: print(small, "과 가깝습니다") elif big_diff < small_dif: print(big, "과 가깝습니다") else: print("중간값입니다")
- 프롤로그
- 개발 첫걸음
- 파이썬 기초
- 파이썬 중급
- 파이썬 고급
- 내장 함수 톺아보기
- 예외와 에러 – 예상치 못한 상황에 대응하기 (v0.1)
- 변수의 범위 – 이름 검색의 범위
- 파이썬 심화
- 시퀀스와 반복자 – 반복과 순회를 자유자재로 다루기
- 데코레이터 – 함수의 기능을 강화하기
- 프로퍼티
- 제너레이터
- async와 await
- 객체로서의 클래스 – 클래스를 동적으로 정의하기
- 파이썬 프로젝트 실습
- 원카드 게임 만들기 (1)
- 원카드 게임 만들기 (2)
- 원카드 게임 만들기 (3) (작성중)
- 턴제 자동 전투 게임 만들기 (작성중)
- 실전 (파이썬 외적인 것들)
- 정규표현식 – 문자열을 검색하고 치환하기 (작성중)
- 유니코드 – 컴퓨터에서 문자를 표기하는 방법
- html, css, 인터넷 – 자동화 첫 걸음 내딛기
- 네트워크 – 인터넷으로 통신하는 방법
- 문서 – 문맥을 읽어보기
CONTENTS
- 실컷 때릴 수 있는 허수아비
- 실행 코드
- 결과
- 1. 설명
- 2. 설명
- 3. 설명
- 4. 설명
- 5. 설명
- 6. 설명
- 7. 설명
- 8. 설명
- 핵심 개념 정리
- 비교 연산자(Comparison Operator)
- 비교 연산자의 종류
- 논리 연산자 (Logical Operator)
- 논리 연산자의 종류
- 논리 연산자 결과 표
- 여러 개의 분기를 한꺼번에 만들기 (
elif
) - 유의사항
- if는 무조건 조건을 검사합니다.
- 비교 연산자의 양쪽에는 무조건 값이 있어야 합니다.
- 블록을 마음대로 시작하면 에러가 발생합니다.
- 같은지 판단할 때 대입 연산자를 사용하지 마세요.
else
,elif
는 같은 블록에 있는if
와 짝지어집니다.- 더 나아가기
- 연습 문제
- 프로그래밍 문제
- 프로그래밍 문제 정답
== 와 = 구분하기