Programming

[혼공파] Conditional

곰나루_ 2023. 12. 15. 17:45

● 1. Boolean data type & if conditional

- Bool 만들기 - Comparison operators

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

 

- Bool끼리 연산하기 - Logical operators

not 불을 반대로 전환
and 피연산자 두 개 모두 참 = True  /  그 외 = False
or 피연산자 중 하나만 참이라도 = True / 두 개 모두 거짓 = False

 

 

- [예제 p.169]  짝수와 홀수 구분하기

풀이 1 - 끝 자리로 구분  (사람의 방법)

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

last_character = number[-1]    # 마지막 자리 숫자 indexing

last_number = int(last_character)    # data type을 str에서 int로 변환

if last_number == 0 \
    or last_number == 2 \
    or last_number == 4 \
    or last_number == 6 \
    or last_number == 8:
    print("짝수입니다")

if last_number == 1 \
    or last_number == 3 \
    or last_number == 5 \
    or last_number == 7 \
    or last_number == 9:
    print("홀수입니다")

 

 

풀이 2 - in 연산자 활용

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

last_character = number[-1]

if last_character in "02468":
    print("짝수입니다")

if last_character in "13579":
    print("홀수입니다")

 

 

풀이 3 - % 연산자 활용  (컴퓨터의 방법 = 더 빠르다!)

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

if number % 2 == 0:
    print("짝수입니다")
else:
    print("홀수입니다")

 

 

2. if~else & elif syntax

- [예제 p.179]  if conditiona의 효율적 사용

score = float(input("학점 입력> "))

if score == 4.5:
    print("신")
elif 4.2 <= score:
    print("교수님의 사랑")
elif 3.5 <= score:
    print("현 체제의 수호자")
elif 2.8 <= score:
    print("일반인")
elif 2.3 <= score:
    print("일탈을 꿈꾸는 소시민")
elif 1.75 <= score:
    print("오락문화의 선구자")
elif 1.0 <= score:
    print("불가촉천민")
elif 0.5 <= score:
    print("자벌레")
elif 0 < score:
    print("플랑크톤")
else:
    print("시대를 앞서가는 혁명의 씨앗")

 

위에서 검사한 상위 값은 제외하고 하위 값만 검사해야, 가독성과 프로그램 효율이 훨씬 높아진다.

 

 

- False로 변환되는 값

  1. None
  2. 0 / 0.0
  3. 빈 컨테이너 (빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕셔너리 등)

 

 

- [도전문제 p.188]  간단한 대화 프로그램

import datetime                                # module 기능을 활용해 시간 기능 가져오기 (p.412)
now = datetime.datetime.now()

dialogue = input("대화를 입력하세요 : ")

if "안녕" in dialogue:
    print("안녕하세요")
elif "몇 시" in dialogue:
    print(f'지금은 {now.hour}시입니다.')
else:
    print(dialogue)

 

 

- [도전문제 p.189]  나누어 떨어지는 숫자

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

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

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

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

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

'Programming' 카테고리의 다른 글

git  (0) 2024.01.14
[혼공파] Iteration  (1) 2023.12.31
[혼공파] Data type  (0) 2023.12.14
[생활코딩] CSS  (1) 2023.11.27
[생활코딩] HTML & Internet  (1) 2023.10.28