개센개발

혼자 공부하는 파이썬 - 03 조건문 본문

파이썬

혼자 공부하는 파이썬 - 03 조건문

벼링2 2024. 1. 28. 19:21

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

Boolean :  불린 또는 불리언

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

print(True)
True

print(False)
False

 

 

불 연산하기 : 비교 연산자

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

파이썬에는 여섯 개의 비교 연산자가 있다. 

== 같다
!= 다르다
< 작다
> 크다
<= 작거나 같다
>= 크거나 같다

 

 

 

 

불 연산하기 : 비교 연산자

불끼리는 논리 연산자를 사용할 수 있다. 

not 아니다
and 그리고
or 또는

 

not 연산자

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

실행하면 True와 False가 서로 바뀐다.

 

 

and 연산자와 or  연산자

and 연산자는 양쪽 변의 값이 모두 참일 때만 True를 결과로 낸다.

or 연산자는 둘 중 하나만 참이어도 True를 결과로 낸다.

 

 

if 조건문이란?

if 조건문은 조건에 따라 코드를 실행하거나 실행하지 않게 만들고 싶을 떄 사용하는 구문이다.

조건을 기반으로 실행의 흐름을 변경하는 것을 조금 어려운 용어로 조건 분기라고 부른다.

#날짜/시간과 관련된 기능을 가져온다.
import datetime

#현재 날짜/시간을 구한다.
now = datetime.datetime.now()

#출력
print(now.year, "년")
2024 년
print(now.month, "월")
1 월
print(now.day, "일")
28 일

hour = now.hour
minute = now.minute

print(hour, "시", minute, "분")
19 시 23 분

 

if now.hour < 12 :
    print("오전입니다.")

    
if now.hour < 12 :
    print("현재 시간은 {}시로 오전입니다.".format(now.hour))

if now.hour > 12 :
    print("현재 시간은 {}시로 오후입니다.".format(now.hour))

    
현재 시간은 19시로 오후입니다.

 

#입력을 받는다.
n = input("정수 입력 > ")
정수 입력 > 1

#마지막 자리 숫자를 추출
last_ch = n[-1]

#숫자로 변환
last_ch = int(last_ch)

print(last_ch)
1

#짝수 확인
if last_ch == 0
SyntaxError: expected ':'

number = input("정수 입력 >")
정수 입력 >11
number = int(number)

if number % 2 == 0 :
    print("{}는 짝수입니다.".format(number))

    
if number % != 0 :
    
SyntaxError: invalid syntax
if number % 2 != 0 :
    print("{}는 홀수입니다.".format(number))

    
11는 홀수입니다.

 

 

03-2. if~else와 elif 구문

else 조건문의 활용

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

if 조건 :

조건이 참일 떄 실행할 문자

else :

조건이 거짓일 때 실행할 문장

#입력을 받는다.
number = int(input("정수 입력 >"))
정수 입력 >19
print(type(number))
<class 'int'>

#조건문을 사용한다.
if number % 2 == 0 :
    print("짝수입니다.")
else :
    print("홀수입니다.")

    
홀수입니다.

 

 

elif 구문

세 개 이상의 조건을 연결해서 사용하는 방법이 필요한 경우도 있다.

elif 구문은 if 조건문과 else 굼누 사이에 입력하며 다음과 같은 형태로 사용한다.

 

if 조건 A :

조건 A가 참일 때 실행할 문장

elif 조건 B : 

조건 B가 참일 떄 실행할 문장

elif 조건 C : 

조건 C가 참일 때 시행할 문장

else :

모든 조건이 거짓일 때 문장

 

#날짜/시간과 관련된 기능을 가져온다.
import datetime

#현재 날짜/시간을 구하고
#쉽게 사용할 수 있게 월을 변수에 저장한다.
now = datetime.datetime.now()
month = now.month

#조건문으로 계절을 확인한다.
if 3 <= month <= 5 :
    print("봄입니다.")
elif 5 < month <= 8 :
    print("여름입니다.")
elif 8 < month <= 10 :
    print("가을입니다.")
else :
    print("겨울입니다.")
    
겨울입니다.

 

#변수를 선언
score = float(input("학점 입력 > "))
학점 입력 > 4.04

#조건문 작성
if score == 4.5 :
    print("신")
elif 4.2 <= score < 4.5 :
    print("교수님의 사랑")
elif 3.5 <= score < 4.2 :
    print("현 체제의 수호자")
elif 2.8 <= score < 3.5 :
    print("일반인")
else :
    print("나도 몰라~")

    
현 체제의 수호자

 

 

False로 변환되는 값

if 조건문의 매개변수에 불이 아닌 다른 값이 올 때는 자동으로 이를 불로 변환해서 처리한다.

따라서 어떤 값이 True로 변환되고, 어떤 값이 False로 변환되는지 알고 있어야 코드를 이해할 수 있다.

False로 변환되는 값은 None, 숫자 0과 0.0, 빈 컨테이너(빈 문자열, 빈 바이트열, ,,) 이다.

이 외에는 모두 True로 변환되므로 위에 언급한 세가지만 기억하자~

 

PASS 키워드

코드를 살펴보던 중 pass 키워드를 만나면 '진짜로 아무것도 안함' 

또는 '곧 개발하겠읍" 이라는 의미로 생각하면 됨.

 

*pass 키워드 외 ~ 

raise 키워드와 미구현 상태를 표현하는 NotImplementedError를 조합하여 

raise NotImplementedError를 사용하면 "아직 구현하지 않은 부분"이라는 오류를 강제로 발생시킬 수 있다.

# 입력을 받는다.
n = input("정수 입력 > ")
정수 입력 > 12
n = int(n)

#조건문 사용
if n > 0 :
    #양수일 때 : 아직 미구현 상태입니다.
    raise NotImplementedError
else :
    #음수일 때 : 아직 미구현 상태입니다.
    raise NotImplementedError

Traceback (most recent call last):
  File "<pyshell#195>", line 3, in <module>
    raise NotImplementedError
NotImplementedError

 

 


 

도전문제

1. 간단한 대화 프로그램

조건문을 이용해서 한 마디 대화를 나눌 수 있는 프로그램을 만들어보기.

간단한 "안녕" 또는 "안녕하세요"를 입력하면 프로그램이 "안녕하세요"정도의 인사를 할 수 있게 해보고

"지금 몇 시야?" 또는 "지금 몇 시예요?"처럼 시간을 물어보면 시간을 응답할 수 있게 하기.

sayHello = input("입력 > ")
입력 > 안녕
if sayHello == "안녕" :
    print("안녕하세요")

안녕하세요

 

Hello = input("입력 >")
입력 >안녕하세요
if Hello == "안녕하세요" :
    print("안녕하세요")

안녕하세요

 

 

2. 나누어 떨어지는 숫자

숫자를 입력하면 숫자가 2, 3, 4, 5로 나누어 떨어지는지 확인하고 출력하는 프로그램을 구현해보기.

number = int(input())
273

if number % 2 == 0 :
    print("{}는 2로 나누어 떨어지는 숫자입니다.".format(number))
else :
    print("{}는 2로 나누어 떨어지는 숫자가 아닙니다.".format(number))

273는 2로 나누어 떨어지는 숫자가 아닙니다.

if number % 3 == 0 :
    print("{}는 3으로 나누어 떨어지는 숫자입니다.".format(number))
else :
    print("{}는 3으로 나누어 떨어지는 숫자가 아닙니다.".format(number))

    
273는 3으로 나누어 떨어지는 숫자입니다.

if number % 4 == 0 :
    print("{}는 4로 나누어 떨어지는 숫자 입니다.".format(number))
else :
    print("{}는 4로 나누어 떨어지는 숫자가 아닙니다.".format(number))

    
273는 4로 나누어 떨어지는 숫자가 아닙니다.

if number % 5 == 0 :
    print("{}는 5로 나누어 떨어지는 숫자입니다.".format(number))
else :
    print("{}는 5로 나누어 떨어지는 숫자가 아닙니다.".format(number))

    
273는 5로 나누어 떨어지는 숫자가 아닙니다.

 

Comments