커리큘럼

이 글은 한빛미디어의 ⟪혼자 공부하는 파이썬 2019 개정판⟫을 참고하여 작성되었음을 알려드립니다.







3. 조건문

3-1. 불 자료형과 if 조건문

불린(Boolean)

프로그래밍 언어에는 기본적인 자료형으로 참과 거짓을 나타내는 값이 있다. 이를 불린(Boolean), 줄여서 이라고 부른다. 부울 대수의 부울이 바로 이것이다.

불은 오직 True(참)와 False(거짓) 값만 가질 수 있다.


불 만들기: 비교 연산자

불은 비교 연산자를 통해 만들 수 있다.

비교연산자

연산자설명
==같다
!=다르다
<작다
>크다
<=작거나 같다
>=크거나 같다

비교 연산자는 숫자 또는 문자열에 적용할 수 있는데, 파이썬에서는 숫자와 문자열에 모두 적용할 수 있다. 대소 비교는 이해하기 쉬우니 생략하고, 문자열 비교 예제만 들어보도록 하겠다.

문자열 비교에서 한글은 사전 순서(가나다순)로 앞에 있는 것이 작은 값을 갖는다. 예를 들어, '기계학습'과 '파이썬'을 비교하면 '기계학습'이 '파이썬'보다 작은 값을 갖는 것이다.

>> print("기계학습" == "기계학습")
True
>> print("기계학습" != "파이썬")
True
>> print("기계학습" < "파이썬")
True
>> print("기계학습" > "파이썬")
False

불 연산하기: 논리 연산자

불끼리 연산할 때에는 논리 연산자를 사용한다.

논리연산자

연산자의미설명
not아니다불을 반대로 전환한다.
and그리고피연산자 두 개가 모두 참일 때 True를 출력하며, 그 외는 모두 False를 출력한다.
or또는피연산자 두 개 중에 하나만 참이라도 True를 출력하며, 두 개가 모두 거짓일 때만 False를 출력한다.

각각의 연산자에 대해 설명하기 전에 단항 연산자와 이항 연산자 개념에 대해 설명하겠다.

단항 연산자와 이항 연산자

  • 단항 연산자
    : 피연산자가 1개
    : -10, +30과 같이 음/양수를 표시하는 연산자
  • 이항 연산자
    : 피연산자가 2개
    : 우리가 기본적으로 사용하는 숫자 연산자 대부분으로, 10+10,10-10, 10 * 10, 10/10과 같이 연산자 양쪽에 피연산자를 하나씩 갖고 있는 것.

not 연산자

not 연산자는 단항 연산자로, 참과 거짓을 반대로 바꿀 때 사용한다.


and 연산자와 or 연산자

  • and 연산자: 양쪽 변의 값이 모두 참일 때만 True 출력
좌변우변결과
TrueTrueTrue
FalseTrueFalse
FalseTrueFalse
FalseFalseFalse

  • or 연산자: 둘 중 하나만 참이어도 True 출력
좌변우변결과
TrueTrueTrue
FalseTrueTrue
FalseTrueTrue
FalseFalseFalse

if 조건문이란?

조건에 따라 코드를 실행하거나, 실행하지 않게 만들고 싶을 때 사용하는 구문이다(=코드의 실행 흐름을 변경한다, 조건 분기).

< 조건문의 기본적인 구조>

>> if 불 값이 나오는 표현식:
...    불 값이 참일 때 실행할 문장
...    불 값이 참일 때 실행할 문장

날짜/시간 활용하기

#날짜/시간과 관련된 기능을 가져온다.
import datetime
#현재 날짜/시간을 구한다.
now =datetime.datetime.now()
#출력한다.
print(now.year,"년")
print(now.month,"월")
print(now.day,"일")
print(now.hour,"시")
print(now.minute,"분")
print(now.second,"초")

실제로 vscode에서 출력해보자.
아래는 출력결과이다.



3-2. if~else와 else 구문

else 조건문의 활용

if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓일 때 실행되는 부분이다.

< 조건문의 기본적인 구조>

>> if 조건:
...    조건이 참일 때 실행할 문장
>> else:
...    조건이 거짓일 때 실행할 문장

(예제) if 조건문에 else 구문을 추가해서 짝수와 홀수 구분하기

#입력 받기
number=input("정수 입력>")
number=int(number)
#조건문을 사용한다.
if number % 2 == 0:
	#조건이 참일 때, 즉 짝수 조건
    print("짝수입니다")
else:
    #조건이 거짓일 때, 즉 홀수 조건
    print("홀수입니다")

실제로 vscode에서 출력해보자.
365를 입력했을 때, 출력결과이다.



elif 구문

홀수와 짝수처럼 조건이 딱 두 가지로 구분되는 것도 있지만 그렇지 않은 것도 있다. 예를 들어 계절은 4개의 조건이 있고, 요일은 7개의 조건이 있다.

따라서, 3개 이상의 조건을 연결해서 사용할 때에는 if 조건문과 else 구문 사이에 elif구문을 입력하여 사용한다.

< 조건문의 기본적인 구조>

if 조건A:
   조건이 참일 때 실행할 문장
elif 조건B:
	조건 B가 참일 때 실행할 문장
elif 조건C:
	조건C가 참일 때 실행할 문장
else:
	조건이 거짓일 때 실행할 문장

(예제) 계절 구하기

#날짜/시간과 관련된 기능을 가져온다.
import datetime
#현재 날짜/시간을 구하고
#쉽게 사용할 수 있게 월을 변수에 저장한다.
now=datetime.datetime.now()
month=now.month
#조건문으로 계절을 확인한다.
if 3 <= month <= 5:
	print("꽃의 계절, 봄이에요.")
elif 6<= month <= 8:
	print("바다의 계절, 여름이에요.")
elif 9<= omnth <= 11:
	print("독서의 계절, 가을이에요.")
else:
	print("눈의 계절, 겨울이에요.")

실제로 vscode에서 출력해보자.
현재는 7월로 여름이기 때문에, 출력 결과는 다음과 같이 나온다.



False로 변환되는 값

if 조건문의 매개변수에 불이 아닌 다른 값이 올 대는 자동으로 이를 불로 변환해서 처리한다. 따라서 어떤 값이 True로 변환되고, 어떤 값이 False로 변환되는지 알고 있어야 코드를 이해할 수 있다.

False로 변환되는 값은 None, 숫자 0과 0.0, 빈 컨테이너(빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등)이다. 이 외에는 모두 True로 변환된다.



pass 키워드

프로그래밍을 하다 보면 일단 프로그래밍 전체 골격을 잡고 내부에서 처리할 내용을 작성하는 경우가 많다. 그러면 나중에 구현하려고 비워 둔 구문이 발생한다. 파이썬의 경우 if 조건문 사이에는 무조건 들여쓰기 4칸(Tab)을 넣고 코드를 작성해야 구문이 성립되기 때문에, IndentationError가 발생한다.

이때 pass 키워드를 사용해서, '진짜로 아무것도 안함' 또는 '곧 개발하겠음'이라는 의미를 나타낼 수 있다.







2주차 미션

문제
사용자에게 태어난 연도를 입력받아 띠를 출력하는 프로그램을 작성해 주세요. 작성 시 입력받은 연도를 12로 나눈 나머지를 사용합니다. 나머지를 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11일 때, 각각 원숭이, 닭, 개, 돼지, 쥐, 소, 범, 토끼, 용, 뱀, 말, 양띠입니다.


코드 작성 - vscode


출력 결과







0개의 댓글