두 수 비교하기
args = input().split()
a = int(args[0])
b = int(args[1])
if a > b:
print('>')
elif a < b:
print('<')
else:
print('==')
실행 흐름 바꾸기 1
Python은 일반적으로 코드를 위에서 아래로 한 줄씩 실행합니다.
하지만 이 문제에서 print('>')
는 a
가 b
보다 클 때만 실행되어야 하는 것처럼, 일반적인 실행 흐름을 바꾸어야 할 때가 있습니다.
a
가b
보다 큰지 비교한다.- 그 결과가 참이면
print('>')
를 실행한다. - 그 결과가 거짓이라면 실행하지 않고 넘어간다.
- 그 결과가 참이면
이 과정들은 참 또는 거짓을 표현하는 논리값, 크기를 비교하는 비교연산자, 간단한 흐름제어문인 if
문을 사용하여 구현할 수 있습니다.
논리값
다음과 같은 값을 논리값이라고 합니다.
False
True
두 값은 각각 거짓과 참을 나타내며, 논리값은 이 둘이 전부입니다.
논리값은 bool
형입니다.
bool
은 논리에 대한 대수 체계를 정의한 조지 불(George Boole)의 이름에서 따온 것입니다.
비교연산자
어떤 두 값 a
와 b
의 크기를 비교할 때는 다음과 같은 연산자를 사용합니다.
연산 | 의미 |
---|---|
a == b |
a 와 b 가 같은가? |
a != b |
a 와 b 가 다른가? |
a < b |
a 가 b 보다 작은가? |
a > b |
a 가 b 보다 큰가? |
a <= b |
a 가 b 보다 작거나 같은가? |
a >= b |
a 가 b 보다 크거나 같은가? |
위 연산자들을 비교연산자라고 합니다. 비교연산자는 식을 평가하고, 그 결과를 논리값으로 반환합니다. 값의 크기는 정수들과 실수들 사이에서 잘 정의됩니다. 즉, 다음과 같은 비교연산을 수행할 수 있습니다.
1 <= 2 # True
3.14 > 2.71 # True
1.0 == 1 # True
그러나 수와 문자열 사이의 비교는 정의되지 않습니다.
예를 들어, 3 > "0.5"
는 TypeError
오류를 발생시킵니다.
같은 식에 비교연산자와 사칙연산(+
, -
, *
, /
등)이 함께 사용되면, 사칙연산이 끝난 후 비교연산이 수행됩니다.
즉, 우리에게 익숙하게 2 * 2 > 3
은 4 > 3
이 되어 True
를 반환합니다.
if
문
if
문으로 조건에 따라 특정 문장들의 실행 여부를 결정할 수 있습니다.
다음과 같이 작성합니다.
apple = int(input())
if apple == 0:
print("사과가 없습니다.")
elif apple == 1:
print("사과가 하나밖에 없습니다.")
elif apple > 0:
print("사과가 많이 있습니다.")
else:
apple = 0
print("오류를 수정했습니다.")
print("완료")
우선 if
옆에 평가할 표현식을 적은 후 :
을 붙입니다.
그리고 다음 줄에 실행할 문장들을 한 줄씩 적습니다.
만약 if
옆의 표현식이 참이면 if
문 아래에 있는 문장들을 실행한 다음, 바로 if
문을 빠져나갑니다.
즉, 위 코드에서 apple
이 $0$이었다면 "사과가 없습니다"를 출력한 후, 아래의 다른 조건들은 검사하지 않고 바로 "완료"를 출력합니다.
표현식이 거짓이라면 바로 다음에 있는 elif
또는 else
로 넘어갑니다.
apple
이 $1$이었다면, 첫 if
의 apple == 0
이 거짓이므로 다음 elif
로 넘어갑니다.
여기 apple == 1
은 참이므로 "사과가 하나밖에 없습니다"를 출력한 후, 아래의 다른 조건들은 검사하지 않고 바로 "완료"를 출력합니다.
즉, 코드 흐름은 그 아래의 elif apple > 0:
을 지나지도 않습니다.
실행할 문장은 여러 줄로 이루어질 수 있습니다. 이때, 같은 표현식에 속한 문장들은 모두 같은 들여쓰기를 해야 합니다. 관례에 따라 들여쓰기는 공백 4칸을 사용합니다. IDE가 자동으로 이렇게 들여쓰기를 해 줄 것입니다.
if
다음에는 0개 이상의 elif
가 있을 수 있고, 가장 마지막에 else
가 없거나 1개 있을 수 있습니다.
즉 다음과 같은 조합들이 가능합니다.
if
if
-else
if
-elif
if
-elif
-else
if
-elif
-elif
if
-elif
-elif
-elif
if
-elif
-elif
-else
- ...
댓글