1. 조건문 conditional statement
예) 학점을 부여하는 프로그램 (F: 60점 미만, A: 90점 이상)
점수: 38, 65, 89, 16, 95, 71, 63, 48, 49, 66, 37
- 점수에 따른 학점의 기준 설정
- 기준을 바탕으로 첫 번째 점수 판단
- 다음 점수로 이동하며 2번 절차를 반복
- 더 이상 판단할 점수가 없을 때 프로그램 종료
📌 고려할 사항
- 어떤 기준으로 정해야 하는가? ← 조건의 설정
- 언제까지 해야 하는가? ← 반복의 설정
개념
DEF) 조건에 따라 특정 동작을 하도록 하는 프로그래밍 명령어
- 반드시 조건의 참True과 거짓False으로 구분되어야 함
- 조건문 사용을 위해 다음과 같은 명령 키워드를 사용한다.: if, else, elif
- 실생활에서 필요한 상황
- 앞 지하철과의 간격이 10m 이하면, 속도를 10km 이하로 낮춰라.
- 사용자가 20세 이하면, VOD를 재생하지 마라.
- 스마트폰 잠금 해제 패턴이 5회 틀리면, 20초간 대기 상태로 설정하라.
2. 명령 키워드
if—else문
if <조건>: #if 입력 및 조건 삽입 후 ':' 입력
<수행명령 1-1> #들여쓰기 후 수행 명령 입력
<수행명령 1-2> #같은 조건에서 계속 수행할 명령인 경우, 같은 위치에 들여쓰기 유지 필요
else: #조건이 불일치할 경우 수행할 명령
<수행명령 2-1> #조건 불일치 시 수행할 명령 입력
<수행명령 2-2
1. if 뒤에 참/거짓을 판단할 수 있는 조건문 필요. 조건문 끝에는 반드시 콜론(:)을 붙여야 함
2. 들여쓰기indentation를 사용해 해당 조건이 참일 경우 수행할 명령 작성. 들여쓰기는 space 키나 tab키를 사용.
3. if의 조건이 거짓일 경우 else문 수행. (생략해도 상관X)
- 예제1 [직접 실행해보기]
print("Tell me your age?")
myage=int(input())
if myage<30:
print("Welcome to the club.")
else:
print("Oh! No. You are not accepted.")
*사용자에게 숫자를 입력받을 때는 input() 함수로 입력받은 값을 정수형으로 변환해야 한다.
- 조건문을 작성하고 해당 조건을 판단할 때 필요한 비교 연산자
if—elif—else문 [중첩 if문]
- 여러 개의 조건을 하나의 if문에서 검토할 수 있도록 함
- elif: else if
score=int(input("Enter your score: "))
if score >= 90: grade='A'
elif score >= 80: grade='B' #if가 아닌 elif문을 사용하는 것이 중요
elif score >= 70: grade='C'
elif score >= 60: grade='D'
else: grade='F' #모든 조건에 만족하지 못할 경우 F 할당
print(grade)
* 첫 번째 if문부터 마지막 else문까지가 하나의 if문 그룹. → 즉, 하나의 조건만 맞는다면 다른 조건들과 비교X
- if문, elif문, else문 뒤에 수행할 명령문이 한 줄이면 들여쓰기 하지 않음. (이는 들여쓰기로 명령어를 구분하는 모든 문법에 적용되는 사항)
3. 조건의 판단
비교 연산자 (=조건 연산자)
DEF) 어떤 것이 큰지 작은지, 그리고 같은지를 비교하는 것
- 결과는 참 혹은 거짓
비교연산자 | 비교 상태 | 설명 |
x<y | ~보다 작음 | x가 y보다 작은지 검사 |
x>y | ~보다 큼 | x가 y보다 큰지 검사 |
x==y | 같음 | x와 y의 값이 같은지 검사 (할당 연산자인 =와 헷갈리지 않기) |
x is y | 같음 (메모리 주소) | x와 y의 메모리 주소가 같은지 검사 |
x!=y | 같지 않음 | x와 y의 값이 같지 않은지 검사 |
x is not y | 같지 않음 (메모리 주소) | x와 y의 메모리 주소가 같지 않은지 검사 |
x>=y | 크거나 같음 | x가 y보다 크거나 같은지 검사 |
x<=y | 작거나 같음 | x가 y보다 작거나 같은지 검사 |
- ==와 is 연산자의 차이
- 처음 인터프리터 시작시 -5~256까지의 메모리(정적 메모리) 주소에 값을 할당하는 파이썬
- 해당 값을 다른 변수가 사용할 때 메모리 주소를 반환
- 만일 변수 a, b 모두 100이라는 값을 가지고 있을 때 ==과 is 문법 모두 True
- 그러나, 300일 때는 값은 같으나 메모리 주소는 다르다고 출력. (→ is 문법 False)
- 이해가 가지 않는다면 일단 ==만 사용
- True와 False의 치환
- 컴퓨터의 언어: 이진수 (0, 1)
- True: 1, False: 0
1) (3>5)의 결과 False 0으로 치환 → 2) 0<10의 결과 True.>>> (3 > 5) < 10 True
논리 연산자 (and, or, not)
연산자 설명 예시
연산자 | 설명 | 예시 |
and | 두 값이 모두 참일 경우 True, 그렇지 않을 경우 False | (7>5) and (10>5) ⇒ True (7>5) and (10<5) ⇒ False |
or | 두 값 중 하나만 참일 경우 True, 두 값 모두 거짓일 경우 False | (7<5) or (10>5) ⇒ True (7<5) or (10<5) ⇒ False |
not | 값을 역으로 반환하여 판단 | not (7<5)는 True not (7>5)는 False |
4. 실습: 숫자찾기 게임
프로그램 규칙
- 먼저 컴퓨터가 1~100 중 임의의 숫자 생성
- 다음으로 사용자가 추측하는 숫자 입력 시 컴퓨터가 생성한 숫자보다 큰지, 작은지를 계속 비교
- 정답을 맞힐 때까지 반복하다가 맞혔을 때 ‘정답입니다. 입력한 숫자는 n입니다.’를 출력 </aside>
import random
guess_number=random.randint(1,100)
print("숫자를 맞혀 보세요. (1~100)")
users_input=int(input())
while (users_input is not guess_number):
if users_input > guess_number:
print("숫자가 너무 큽니다.")
else:
print("숫자가 너무 작습니다.")
users_input=int(input())
else:
print("정답입니다.","입력한 숫자는",users_input,"입니다.")
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[3팀/이지현] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.22 |
---|---|
[3차시/김규리] 3차시 파이썬 스터디 - 조건문 (0) | 2023.03.22 |
[4팀/이제은] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.17 |
[1팀/허서원] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.16 |
[2팀/김세연] 2차시 파이썬 스터디 - 자료형 (0) | 2023.03.16 |