03-1 불리언 자료형과 if 조건문
• Boolean
• 불리언
• True와 False 값만 가질 수 있음
• 비교 연산자를 통해 만들 수 있음
시작하기 전에
불리언 만들기 : 비교 연산자
• 숫자 또는 문자열에 적용
• 문자열에도 비교 연산자 적용 가능
불리언 만들기 : 비교 연산자
• 불리언끼리 논리 연산자 사용 가능
• not 연산자
• 단항 연산자
• 참과 거짓 반대로 바꿈
불리언 연산하기 : 논리 연산자
• 예시 – not 연산자 조합하기
불 연산하기 : 논리 연산자
• and 연산자와 or 연산자
• and 연산자는 양쪽 변의 값이 모두 참일 때만 True를 결과로 냄
• and 연산자
• or 연산자
불 연산하기 : 논리 연산자
• if 조건문
• 조건에 따라 코드 실행하거나 실행하지 않게 할 때 사용하는 구문
• 조건 분기
if 조건문이란
• 예시 – 조건문의 기본 사용
if 조건문이란
• 예시 – 날짜/시간 출력하기
• datetime.datetime.now() 함수
날짜 / 시간 활용하기
• 예시 – 날짜/시간을 format()를 사용하여 한 줄로 출력하기
날짜 / 시간 활용하기
• 예시 – 오전과 오후를 구분하여 출력하기
날짜 / 시간 활용하기
Lab: 졸업 학점 검사하기
>>> age = 20
>>> height = 180
>>> if( (age>=10) and (height>=165)) :
print("놀이 기구를 탈 수 있습니다.")
else :
print("놀이 기구를 탈 수 없습니다.")
놀이 기구를 탈 수 있습니다.
• 어떤 대학교를 졸업하려면 적어도 140학점을 이수해야 하고 평점이 2.0은 되어야 한 다고 하자. 이것을 파이썬 프로그램으로 검사해보자.
사용자에게 이수학점수와 평점 을 물어보고 졸업 가능 여부를 출력 하는 프로그램을 작성해보자.
Lab: 졸업 학점 검사하기
이수한 학점수를 입력하시오
: 120평점을 입력하시오
: 2.3졸업이 힘듭니다
!credits = int(input('
이수한 학점수를 입력하시오
: ')) gpa = float(input('평점을 입력하시오
: '))if credits >= 140 and gpa >=2.0:
print('
졸업 가능합니다
!') else:print('
졸업이 힘듭니다
!')• if 조건문의 형식
• 예시 – 나머지 연산자를 활용한 짝수와 홀수 구분
컴퓨터의 조건
• 예시 – 계절을 구분하는 프로그램
날짜 / 시간 활용하기
날짜 / 시간 활용하기
끝자리로 짝수와 홀수 구분
• 예시 – 끝자리로 짝수와 홀수 구분
끝자리로 짝수와 홀수 구분
• 예시 - in 연산자를 활용한 수정
컴퓨터의 조건
• 조건이 참인 경우에 여러 개의 문장이 실행되어야 한다면 어떻게 하여 야 하는가?
컴퓨터의 조건
• 사용자로부터 숫자 두 개를 입력받고 첫 번째 입력받은 숫자가 큰지, 두 번째 입력받은 숫자가 큰지를 구하는 프로그램을 다음 빈칸을 채 워 완성해 보세요.
확인문제
• else 구문
• if 조건문 뒤에 사용하며, if 조건문의 조건이 거짓을 때 실행되는 부분
• 조건문이 오로지 두 가지로만 구분될 때 if else 구문을 사용하면 조건 비 교를 단 한번만 하므로 이전의 코드보다 두 배 효율적
else 조건문의 활용
• 예시 – if 조건문에 else 구문 추가해서 짝수와 홀수 구분
else 조건문의 활용
• elif 구문
elif 구문
• elif 구문
• 세 개 이상의 조건을 연결해서 사용
• if 조건문과 else 구문 사이에 입력
elif 구문
• 예시 – 계절 구하기
elif 구문
• 조건문의 활용
• 예시
if 조건문을 효율적으로 사용하기
if 조건문을 효율적으로 사용하기
• 위에서 제외된 조건을 한 번 더 검사하여 비효율적
if 조건문을 효율적으로 사용하기
하위 값만 검사하고 상위 값은 검사를 생략
조건 비교를 반으로 줄이고 코드 가독성 향상됨
중첩 if-else 문
• if-else 문장 안에 다른 if-else 문장을 넣을 수 있다.
중첩 if-else 문
• 예 - 마트에서 사과가 신선하면 사과를 사기로 한다. 만약 사과가 개 당 1000원 미만이면 10개를 산다. 하지만 사과가 개당 1000원 이상이 면 5개만 산다.
appleQuality = input("
사과의 상태를 입력하시오
: ")applePrice = int(input("
사과
1개의 가격을 입력하시오
: ")) if appleQuality == "신선
":if applePrice < 1000:
print("10
개를 산다
") else:print("5
개를 산다
") else:print("
사과를 사지 않는다
.")중첩 if-else 문
• 예 - 아이디를 입력 받아서 등록된 아이디인지를 검사하는 프로그램 을 작성해보자.
• 등록된 아이디를 리스트(user_list)에 저장한다.
• 입력한 아이디가 저장된 아이디 리스트와 일치하면 패스워드를 물어본 다.
• in 연산자를 사용하여 코드를 작성할 것 아이디를 입력하시오
: hong패스워드를 입력하시오
: 12345678환영합니다
.중첩 if-else 문
user_list =['
김철수
', '홍길동
', '김영희
']name=input('
아이디
: ') if name in user_list:password = input('
패스워드를 입력하시오
: ')if password == '12345678':
print('
환영합니다
.') else:print('
잘못된 패스워드입니다
. ')else :
print('
알 수 없는 사용자입니다
!')• 빈 컨테이너
• if 조건문의 매개변수에 불리언 아닌 다른 값이 올 때 자동으로 불리언으 로 변환
• 이 때 False로 변환되는 값: None, 0.0, 빈 문자열, 빈 바이트열, 빈 리스트
False 로 변환되는 값
• 나중에 구현하고자 구문을 비워 두는 경우
pass 키워드
• IndentationError
• if 조건문 사이에는 무조건 들여쓰기 4칸 넣고 코드 작성해야 함
• pass 키워드
• 아무것도 작성하지 않고 임시적으로 비워 둠
pass 키워드
• 가위, 바위, 보 게임을 작성하시오.
• 컴퓨터는 난수를 발생시켜서 가위, 바위, 보 중에서 하나를 선택한다.
• 이를 위해 random을 임포트한다.
• 난수는 random.randint(범위 시작, 범위 종료) 함수를 이용하여 발생시 킨다. (예) 0, 1을 난수로 발생시키기 à random.randint(0, 2)