파이썬에서 True, False의 첫 글자는 반드시 대문자로 적어야 함
불 자료형과 if 조건문
# 불 만들기: 비교 연산자 (*숫자 or 문자열에 적용 가능)
== 같다
!= 다르다
< 작다
> 크다
<= 작거나 같다
>= 크거나 같다
# 불 연산하기: 논리 연산자
not 아니다: 불을 반대로 전환
and 그리고: 두개 모두 참일 때 True, 그 외는 모두 False
or 또는: 하나만 참이라도 True, 두개 모두 거짓일 때 False
# not 연산자
단항 연산자이며, 참과 거짓을 반대로 바꿀 때 사용
# and 연산자와 or 연산자
and: 양쪽 모두 참일 때만 True
or : 둘중 하나만 참이어도 True
# if 조건문
if 조건문 구조
if 불 값이 나오는 표현식: # if의 조건문 뒤에는 반드시 콜론(:)을 붙여야 함
불 값이 참일 때 실행할 문장 # if문 다음 문장은 4칸 들여쓰기 후 입력! 그렇지 않을 경우 오류 발생
불 값이 참일 때 실행할 문장
코드 작성 시, 들여쓰기 중요함!
개발 전용 에디터에서 Tab키 클릭 시, 자동으로 띄어쓰기 네 개 적용됨 -> 소프트탭(soft tab)
Tab: 들여쓰기
Shift + Tab: 들여쓰기 제거
(*여러 줄 동시 적용 시, 여러 줄 선택한 후에 Tab 누르면 일괄 적용됨)
날짜/시간 활용하기
# 날짜/시간과 관련된 기능을 가져옵니다.
import datetime
# 현재 날짜/시간을 구합니다.
now = datetime.datetime.now()
# 출력합니다.
print(now.year, "년")
print(now.month, "월")
print(now.day, "일")
print(now.hour, "시")
print(now.minute, "분")
print(now.second, "초")
#결과값
2024 년
6 월
29 일
12 시
35 분
27 초
# format() 함수 이용 시
# 날짜/시간과 관련된 기능을 가져옵니다.
import datetime
# 현재 날짜/시간을 구합니다.
now = datetime.datetime.now()
# 출력합니다.
print("{}년 {}월 {}일 {}시 {}분 {}초".format(
now.year,
now.month,
now.day,
now.hour,
now.minute,
now.second
))
# 결과값
2024년 6월 29일 12시 39분 16초
! 대부분의 프로그래밍 언어는 월을 0~11까지로 출력함, 그러나 파이썬은 그대로 출력하므로 헷갈림 주의!
# 오전 오후 구분
# 날짜/시간과 관련된 기능을 가져옵니다.
import datetime
# 현재 날짜/시간을 구합니다.
now = datetime.datetime.now()
# 오전 구분
if now.hour < 12:
print("현재 시각은 {}시로 오전입니다!".format(now.hour))
# 오후 구분
if now.hour >= 12:
print("현재 시각은 {}시로 오후입니다!".format(now.hour))
# 결과값
현재 시각은 12시로 오후입니다!
# 계절 구분
# 날짜/시간과 관련된 기능을 가져옵니다.
import datetime
# 현재 날짜/시간을 구합니다.
now = datetime.datetime.now()
# 봄 구분
if 3 <= now.month <= 5:
print("이번 달은 {}월로 봄입니다!".format(now.month))
# 여름 구분
if 6 <= now.month <= 8:
print("이번 달은 {}월로 여름입니다!".format(now.month))
# 가을 구분
if 9 <= now.month <= 1:
print("이번 달은 {}월로 가을입니다!".format(now.month))
# 겨울 구분
if now.month == 12 or 1 <= now.month <= 2:
print("이번 달은 {}월로 겨울입니다!".format(now.month))
# 결과값
이번 달은 6월로 여름입니다!
# 짝수와 홀수 구분하기
# 입력을 받습니다.
number = input("정수 입력> ")
# 마지막 자리 숫자를 추출
last_character = number[-1]
# 숫자로 변환하기
last_number = int(last_character)
# 짝수 확인
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("홀수입니다")
# 결과값
정수 입력> 52
짝수입니다
정수 입력> 273
홀수입니다
in 문자열 연산자를 활용해 짝수/홀수 구분
# 입력을 받습니다.
number = input("정수 입력> ")
last_character = number[-1]
# 짝수 조건
if last_character in "02468":
print("짝수입니다")
# 홀수 조건
if last_character in "13570":
print("홀수입니다")
# 결과값
정수 입력> 52
짝수입니다
문자열 연산보다 숫자열 연산이 조금 더 빠름
이를 활용해 '숫자 연산'을 통한 홀짝 구분 코드
# 나머지 연산자 활용해 짝수/홀수 구분
# 입력을 받습니다.
number = input("정수 입력> ")
number = int(number)
# 짝수 조건
if number % 2 == 0:
print("짝수입니다")
# 홀수 조건
if number % 2 == 1:
print("홀수입니다")
# 결과값
정수 입력> 52
짝수입니다
if~else와 elif 구문
# else 조건문의 활용
if 조건문의 조건이 거짓일 때 실행됨, 조건 비교를 한번만 하므로 효율적임
# 입력을 받습니다.
number = input("정수 입력> ")
number = int(number)
# 조건문을 사용합니다.
if number % 2 == 0:
# 조건문이 참일 때, 즉 짝수 조건
print("짝수입니다")
else:
# 조건이 거짓일 때, 즉 홀수 조건
print("홀수입니다")
# 결과값
정수 입력> 13
홀수입니다
# elif 구문
세 개 이상의 조건을 연결하기 위해 사용
# 날짜/시간과 관련된 기능을 가져옵니다.
import datetime
# 현재 날짜/시간을 구하고
# 쉽게 사용할 수 있게 월을 변수에 저장합니다.
now = datetime.datetime.now()
month = now.month
# 조건문으로 계절을 확인합니다.
if 3 <= month <= 5:
print("현재는 봄입니다.")
elif 6 <= month <= 8:
print("현재는 여름입니다.")
elif 9 <= month <= 11:
print("현재는 가을입니다.")
else:
print("현재는 겨울입니다.")
# 결과값
현재는 여름입니다.
# if 조건문을 효율적으로 사용하기
# 변수를 선언합니다.
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("시대를 앞서가는 혁명의 씨앗")
# 결과값
학점 입력> 3.4
일반인
# False로 변환되는 값
if 조건문의 매개변수에 불이 아닌 다른 값이 올 때, 불로 자동 변환됨
그러므로 어떤 값이 False로 변환되는지 알고 있어야 함
False로 변환되는 값: None, 0, 0.0, 빈 컨테이너(빈 문자열, 빈 바이트열, 빈 리스트, 빈 튜플, 빈 딕서녀리 등)
이 외는 모두 True로 변환됨
print("# if 조건문에 0 넣기")
if 0:
print("0은 True로 변환됩니다")
else:
print("0은 False로 변환됩니다")
print()
print("# if 조건문에 빈 문자열 넣기")
if "":
print("빈 문자열은 True로 변환됩니다")
else:
print("빈 문자열은 False로 변환됩니다")
# 결과값
# if 조건문에 0 넣기
0은 False로 변환됩니다
# if 조건문에 빈 문자열 넣기
빈 문자열은 False로 변환됩니다
# pass 키워드
프로그래밍의 전체 골격을 잡아 놓고 추후 만들겠다는 의도
이때, 골은 조건문, 반복문, 함수, 클래스 등의 기본 구문에 해당함
# 입력을 받습니다.
number = input("정수 입력> ")
number = int(number)
# 조건문 사용
if number > 0:
# 양수일 때: 아직 미구현 상태입니다.
pass
else:
# 음수일 때: 아직 미구현 상태입니다.
pass
raise NotImplementedError
코두 실행 시, 정상적으로 진행되지만 구현되지 않은 부분에 들어서면 NotImplementedError라는 오류를 발생시킴
# 입력을 받습니다. number = input("정수 입력> ") number = int(number) # 조건문 사용 if number > 0: # 양수일 때: 아직 미구현 상태입니다. raise NotimplementedError else: # 음수일 때: 아직 미구현 상태입니다. raise NotImplementedError
도전 문제
ch03_1
# 입력값 받기
answer = input("입력: ")
# 조건문 설정
if "안녕" in answer:
print("안녕하세요.")
elif "몇 시" in answer:
import datetime
now = datetime.datetime.now()
print(f"지금은 {now.hour}시 입니다.")
else:
print(answer)
ch03_2
# 입력값
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로 나누어 떨어지는 숫자가 아닙니다.")