[부스트코스 코칭스터디] 모두를 위한 파이썬 PY4E - 조건문

mauz·2022년 9월 28일
0
post-thumbnail

2022.7.14 ~ 8.25 6주간 진행한 [부스트코스 모두를 위한 파이썬 코칭스터디 : 2022] 에서 리드부스터로서 활동하였습니다.

본 포스팅은 부스트코스 - 모두를 위한 파이썬 강의에 기초하고 있습니다.


조건문이 필요한 이유?

우리가 컴퓨터를 할때를 상상해봅시다.
바당화면에서 아이콘을 더블클릭하여 프로그램을 실행하였는데,
프로그램이 늘 똑같은 내용만 출력하고있습니다.

조금 이상하죠?

우리가 사용하는 실생활에서 사용하는 프로그램은 입력에 따라서, 혹은 값이 변화함에 따라 출력이 달라집니다.

이번 포스팅에서는 조건에 따라서 코드를 실행할지 말지를 결정하는 조건문에 대해 알아봅시다.

if문

예제1

백문이 불여일견이라고 if문이 어떻게 쓰이는지 예제로 살펴보면,

x = 5

if x < 10 : 
    print('x는 10보다 작습니다')
출력

x는 10보다 작습니다.

if 문은 다음과 같은 구조를 가지고있습니다.

if `조건식`:
	`실행할 코드`
    `실행할 코드`
	`실행할 코드`

if 다음에 조건식이라고 되어있음을 볼 수 있습니다.

이때 조건식의 값이 참이면 가지면 아래의 실행할 코드가 실행되고,
조건식의 값이 거짓이면, 실행할 코드는 실행되지 않고 무시됩니다.

위의 예제에서는 조건식이 x < 10, x가 10보다 작음을 확인했고, 이것이 참이므로, print()문이 실행된 것을 볼 수 있습니다.

사용자 입력받아서 값 비교하기

우리는 이전 포스트에서

사용자 입력을 받아, 값을 변수에 저장하는 법을 배웠습니다.
이를 응용해봅시다.

x = int(input())

if x < 10:
	print('x는 10보다 작습니다.')

위 코드를 실행하면 터미널에 커서가 깜빡이고, 5를 입력하면
'x는 10보다 작습니다.'가 출력될 것입니다.

반대로, 11 같은 값을 입력하면 아무것도 출력되지 않습니다.

이제 우리는 사용자 입력에 따라 출력을 다르게 만들 수 있습니다.

비교 연산자

예제의 조건식에 사용된 부등호는 비교 연산자이며, 그 종류는 다음과 같습니다.

예제2

위의 비교 연산자를 이용해서
x가 10보다 작은 경우와
x가 10보다 작지 않은 경우를 나눠봅시다.

x = int(input())

if x < 10:
	print('x는 10보다 작습니다.')
if x > 10:
	print('x는 10보다 작지 않습니다.')

이제 5를 입력하면 'x는 10보다 작습니다.가 출력되고,
11을 입력하면 'x는 10보다 작지 않습니다.'가 출력됩니다.

그런데 10을 입력하면 아무것도 출력되지 않습니다.

부등호 범위에 10이 벗어나 있기 때문입니다.

버그가 발생했네요.

코드를 수정하면,

x = int(input())

if x < 10:
	print('x는 10보다 작습니다.')
if x > 10:
	print('x는 10보다 작지 않습니다.')
if x == 10:
	print('x는 10보다 작지 않습니다.')

이제 의도대로 코드가 작동합니다.
하지만 복잡해보입니다.

else문을 사용하면 코드를 간결하게 만들 수 있습니다.

if-else문

x = int(input())

if x < 10:
	print('x는 10보다 작습니다.')
else:
	print('x는 10보다 작지 않습니다.')

어떤가요? 코드가 보기 좋게 간결해졌죠?

else문은 if문의 조건식의 값이 거짓일때 실행될 코드를 지정합니다.
따라서 if문없이 else문 단독으로 사용될 수 없습니다.

예제에서 11을 입력했을 때

  1. x = 11 이므로
  2. x < 10 이 거짓이므로 if문 아래의 print('x는 10보다 작습니다.')는 실행되지 않았고
  3. if문의 조건식이 거짓이었으므로 else문 아래의 print('x는 10보다 작지 않습니다.')가 실행된 것을 볼 수 있습니다.

그런데 우리는 x가 10일때 다른 문구를 출력하고 싶어졌다면,
else문 아래에 if문을 또 만들면 됩니다.

x = int(input())

if x < 10:
	print('x는 10보다 작습니다.')
else:
	if x == 10:
    	print('x는 10입니다.')
	print('x는 10보다 작지 않습니다.')
입력 : 10

출력

x는 10입니다.
x는 10보다 작지 않습니다.

이때 'x는 10보다 작지 않습니다.'를 빼고 싶다면,
else문을 분리합니다!

x = int(input())

if x < 10:
	print('x는 10보다 작습니다.')
else:
	if x == 10:
    	print('x는 10입니다.')
else:
	print('x는 10보다 작지 않습니다.')

elif문

else:
	if `조건식`:
    	`실행될 코드`
elif `조건식`:
	`실행될 코드`

위 두가지 코드는 문법적으로 동일합니다.
따라서 아래와 같이 예제를 수정할 수 있습니다.

x = int(input())

if x < 10:
	print('x는 10보다 작습니다.')
elif x == 10:
    	print('x는 10입니다.')
else:
	print('x는 10보다 작지 않습니다.')

profile
쥐구멍에 볕드는 날

0개의 댓글