*모든 출처는 도서 "데이터 과학을 위한 파이썬 프로그래밍"입니다
#1. 개요
제어 구조
- 순차구조(기본)
- 위 → 아래
- 선택구조
- 조건에 따라 실행할 명령어 다름
- if, else, elif
- 반복구조
- 특정 명령어 반복
- for, range, while
학점 부여하는 프로그램
- 성적 데이터
- 과정 구상하기
1. 점수에 따른 학점의 기준 선정
ex. 95점 이상 ‘A+’ & 60점 미만 ‘F’
2. 기준에 따라 첫째 점수 판단
ex. 38점은 60점 미만이므로 ‘F’
3. 다음 점수 이동하며 2.반복
ex. 37점은 60점 미만이므로 ‘F’
4. 판단할 점수 없을 때 프로그램 종료
- 고려할 사항
- 어떤 기준으로 결정해야 하는가? → 조건의 설정
- 언제까지 해야 하는가? → 반복의 설정
- 효율적 문제 해결 가능!
#2. 개념
- 조건에 따라 특정 동작을 하도록 하는 명령어
실생활에서 사용되는 예
- 앞 지하철과의 간격이 10m 이하면, 속도 10km 이하로 늦추기
- 사용자가 20세 이하면, VOD 재생하지 말기
- 스마트폰 잠금 해제 패턴이 5회 틀리면, 20초 동안 대기 상태로 만들기
조건문의 구성
- 조건 나타내는 기준
- ex. ‘스마트폰 잠금 해제 패턴이 5회 틀리면’
- 실행해야 할 명령
- ex. ‘20초 동안 대기 상태’
- 조건은 참(True) & 거짓(False)로 구분
- 명확히 구분되어야 함
if - else 문
- if, else, elif 등 명령 키워드
- 기본 문법
- 설명
- if 뒤 → 참 거짓 판단 가능한 조건문 + 콜론(:)
- 들여쓰기 → 참일 경우 수행할 명령
- 명령?
- ex. a = 30과 같은 파이썬 코드
- 들여쓰기?
- space키 *4칸 or tab 키
- 코드의 시각적 이해 도움
- 명령?
- if 뒤 조건 거짓 → else문 수행
- else 문 생략 가능
- 처리해야 할 명령있다면 삽입
- 예제
- 변수 숫자와 비교
a = 7
if a==6:
print('A') #False
if a==7:
print('B') #True
if a==8:
print('C') #False
else:
print('D') #print('C')대신 실행
-
- 나이로 가입 여부 확인
- if-else
- 나이로 가입 여부 확인
print("Tell me your age?")
myage = int(input())
if myage < 30:
print("Welcome to the Club") #True
else:
print("Oh! No. You are not accepted.") #False
→ 조건 : myage < 30
-
- 실행화면
- 과일 순위 출력
- 과일 선호하는 순으로 저장한 리스트 생성 → 과일 이름 입력받아 해당 과일 선호 순위 출력
- 코드
fruit = ['사과','딸기','오렌지','바나나']
search = input('찾는 과일은?')
if search in fruit:
print(fruit.index(search) + 1,'위 입니다')
else:
print(search, '은/는 순위에 없습니다')
- 실행 화면
조건의 판단
- True & False
- 1 + 1 = 2 ; 참
- 3 -1 = 1 ; 거짓
- cf) ‘여름은 아름답다’ , ‘강아지는 똑똑하다’ .. 참 거짓 판단 불가
- 비교 연산자(조건 연산자)
- ‘==’
- 3 == 3 ; True, 1 == 7 ; False
- ‘!=’
- 3 != 3 ; False, 1 != 7 ; True
- ‘<’
- 3 < 7 ; True, 3 < 3 ; False
- ‘>’
- 7 > 3 ; True
- ‘<=’
- 3 <= 7 ; True
- ‘>=’
- 7 >= 7 ; True
- 주의 사항
- ‘==’ 연산자 → 같음을 의미
- cf) ‘=’ 연산자 → 변수에 값을 할당하는 대입 연산자
- ex. 7 == 7 → True!
- is
- 두 변수 같음을 비교(⇒’==’)
- 메모리 주소 비교
a = 100 b = 100 a is b #True a == b #True a = 300 b = 300 a == b #True a is b #False
- ‘==’ 연산자 → 같음을 의미
- True & False의 치환
- 이진수 처리
- True : 1 , False : 0
- 코드
→ 존재하면 True, 아니면 Falseif 1: print("True") else: print("False") #True
- 이진수 처리
(3>5)<10 #True
- 3 > 5 → False
- False → 0으로 치환
- (0) < 10 → True
- 논리 연산자
-
- 하나의 if로 여러 조건 동시에 판단할 때 사용!
- and : 여러 조건을 모두 충족해야 할 때
- 기호 : &
- ex. x and y , x & y
- 기호 : &
- or : 여러 조건 중 한가지만 충족해도 될 때
- 기호 : |
- ex. x or y , x | yand, or, not
- 기호 : |
-
- 코드
a = 8
b = 5
#1
a == 8 and b == 4 #False
a == 8 & b == 5 #True
#2
a > 7 or b > 7 #True
a < 7 | b > 7 #False
#3
not (a > 7) #False
- #1 (and)
- a는 참, b는 거짓 → True and False로 치환 ⇒ False
- #2 (or)
- a는 참, b는 거짓 → True or False로 치환 ⇒ True
- #3 (not)
- not True로 치환 ⇒ False
- +) 논리 연산자 없이 비교 연산자를 사용할 경우
- 코드식 표현 : age < 14 and age >= 8
- 수학적 표현 : 8 <= age < 14
- 같은 의미지만, 인간어에 가까운 파이썬만이 동일하게 해석 가능
- 따라서 다른 언어는 불가능한 경우가 있고, 다른 프로그래머와의 소통을 위해 코드식 조건문 표현을 지향하자!
if-elif-else문
- 중첩 if문
- if-else 사이 조건 추가
- 형식
- 학점 부여하는 프로그램
- 잘못된 코드
score = int(input("Enter your score: "))
if score >= 90:
grade = 'A'
if score >= 80:
grade = 'B'
if score >= 70:
grade = 'C'
if score >= 60:
grade = 'D'
if score < 60:
grade = 'F'
print(grade)
→ 잘못된 값 출력(D) / 올바른 값 : A
→ 코드가 한 줄씩 차례대로 실행되기 때문!
- 올바른 코드→ elif 사용 (else + if)
score = int(input("Enter your score: "))
if score >= 90:
grade = 'A' # 90 이상일 경우 A
elif score >= 80:
grade = 'B' # 80 이상일 경우 B
elif score >= 70:
grade = 'C' # 70 이상일 경우 C
elif score >= 60:
grade = 'D' # 60 이상일 경우 D
else:
grade = 'F' # 모든 조건에 만족하지 못할 경우 F
print(grade)
- 실행 화면
- → 앞 조건 해당하지 않으면 다음 조건으로 이동
- → 조건문 True되면 if문 빠져나옴
- → 즉, 하나의 조건만 맞으면 더이상 비교하지 않음
- 실행할 명령문이 한 줄 → 들여쓰기 하지 않아도 됨!
조건문 실습
- ‘어떤 종류의 학생인지 맞히는 프로그램’
- 문제 내용
- 조건문 활용
- 사용자에게 태어난 연도 입력받아 어떤 종류의 학생인지 맞히는 프로그램
- 규칙 (2020년 기준)
- 문제 내용
- 문제 해결
#1
print("당신이 태어난 연도를 입력하세요")
#2
birth_year = input()
#3
age = 2020 - int(birth_year) + 1
#4
if age<=26 and age>=20:
#5
print("대학생")
#6
elif age<20 and age>=17:
#7
print("고등학생")
#8
elif age<17 and age>=14:
#9
print("중학생")
#10
elif age<14 and age>=8:
#11
print("초등학생")
#12
else:
#13
print("학생이 아닙니다")
- 설명
- #2 : 사용자의 입력을 받고 변수에 할당
- #3 : 문자형 → 정수형, 2020년도 기준 나이 계산
- #4 ~ #11 : age 값 → if문 elif문 수행
- #12 ~ #13 : 모든 조건에 해당하지 않을 경우 수행
- 최소 금액 채우기
- 문제내용
- 음식 배달 주문할 때, 최소 금액 이상 주문해야 배달 가능한 음식점이 있음
- 사용자의 주문 금액을 입력받아,
- 최소 주문 금액(15000원)을 충족한다면, 기본 배달료(3000원)를 더한 최종 결제 금액 반환하며 프로그램 종료
- 충족하지 않는다면, “주문 금액이 부족합니다.” 반환
- 실행 결과
- 문제내용
- 문제 해결
price = int(input('구매 금액은? ---->'))
if price <15000 :
print('주문 금액이 부족합니다')
else:
print('배달료 3000원이 추가됩니다')
price += 3000 #배달료 최종 금액에 더하기
print('최종 결제 금액은',price,'원 입니다')
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[2팀/김가림, 최다예] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.22 |
---|---|
[3팀/이지현] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.22 |
[4팀/김민혜] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.21 |
[4팀/이제은] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.17 |
[1팀/허서원] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.16 |