0. 제어문
프로그램의 흐름을 제어하기 위해서 사용하는 문법
- 조건문
if문
- 반복문
for문, while문
1. 조건문
조건에 따라서 다른 코드를 실행하고자 할 때(분기처리할 때) 사용한다
if문
if문바깥문장
if 조건식 :
if문안쪽문장
if문안쪽문장
if문바깥문장
if문을 만나면
1. 조건식을 확인한다
1-1. 만약 조건식이 True(bool 타입으로 변환했을 때True)라면 if문 안쪽으로 들어와서 안쪽문장을 차례로 실행한다
1-2. 만약 조건식이 False(bool타입으로 변환했을 때 False)라면 if문 안쪽문장을 실행시키지 않는다
print('프로그램을 시작했어요')
if True :
print('if문안쪽 문장입니다1')
print('if문안쪽 문장입니다2')
print('프로그램이 끝났어요')
> 프로그램이 시작했어요
> if문안쪽 문장입니다1
> if문안쪽 문장입니다2
> 프로그램이 끝났어요
print('프로그램을 시작했어요')
if False :
print('if문안쪽 문장입니다1')
print('if문안쪽 문장입니다2')
print('프로그램이 끝났어요')
> 프로그램이 시작했어요
> 프로그램이 끝났어요
# 사용자에게 정수를 입력받아서 짝수라면 짝수입니다
# 홀수라면 홀수입니다 출력하기
print('프로그램 시작')
num = int(input('정수입력 >> '))
if num % 2 == 0 :
print('짝수입니다')
if num % 2 != 0 :
print('홀수입니다')
print('프로그램 끝')
if ~ else
if 조건식 :
조건식이 참일떄 실행문장
...
else :
조건식이 거짓일때 실행문장
...
# 특정 조건이 거짓일때 무언가를 실행하고 싶다면 else를 사용할 수 있다
# if ~ else는 하나의 조건문, else로 시작할 수는 없다
num = int(input('정수 >> '))
if num % 2 == 0 :
print('짝수입니다')
else :
print('홀수입니다')
print('프로그램끝')
if문과 삼항연산자
삼항연산자는 코드를 간결히 작성할 수 있지만 가독성이 떨어진다
if문은 가독성이 좋다
모든 삼항연산자는 if문으로 바꿀 수 있다
하지만 모든 if문을 삼항연산자로 바꿀 수는 없다
# 두 수를 입력받아서 둘 중 더 큰 수 혹은 서로 같다면 같다고 출력하기
# num1,num2 = list(map(int, input('두 수 띄어쓰기로 입력 >> ').split()))
# print(num1 if num1 > num2 else num2 if num1 < num2 else '같다')
# if문으로 변경
num1, num2 = list(map(int, input('두 수 띄어쓰기로 입력 >> ').split()))
if num1 > num2 :
print(num1)
else :
# ---------------------
if num2 > num1 :
print(num2)
else :
print('같다')
# ---------------------
if ~ elif ~ else
if 조건식1 :
조건식1이 1이 참일때 실행되는 영역
elif 조건식2 :
조건식1은 거짓, 2는 참일때 실행되는 영역
elif 조건식3 :
조건식1,2는 거짓, 3은 참일때 실행되는 영역
... :
...
else :
위에 있는 조건식이 모두 거짓일 때 실행되는 영역
조건식이 참이 된다면 밑은 해석을 하지 않는다.
num1, num2 = list(map(int, input().split()))
if num1 > num2 :
print(num1)
elif num2 > num1 :
print(num2)
else :
print('같다')
print('프로그램 종료')
# if문으로만 쓴다면 모든 식을 해석하기 때문에 3번을 해석하게 된다.
# elif를 써주면 하나의 문장이 되므로 불필요한 문장을 해석하지 않는다 -> 줄일 수 있다
num1, num2 = list(map(int, input().split()))
if num1 > num2 :
print(num1)
if num2 > num1 :
print(num2)
if num1 == num2 :
print('같다')
print('프로그램 종료')
예제1
시험 점수를 입력받아 올바른 학점을 출력하시오
- 90점 이상 : A
- 80점 이상 90점 미만 : B
- 70점 이상 80점 미만 : C
- 70점 미만 : F
당신의 학점은 __입니다
[ 방법 1 ]
score = int(input('시험점수 >> '))
if score >= 90 :
print('당신의 학점은 A입니다.')
elif score >= 80 :
print('당신의 학점은 B입니다.')
elif score >= 70 :
print('당신의 학점은 C입니다.')
else :
print('당신의 학점은 F입니다.')
[ 방법 2 ]
score = int(input('시험점수 >> '))
if score >= 90 :
grade = 'A'
elif score >= 80 :
grade = 'B'
elif score >= 70 :
grade = 'C'
else :
grade = 'F'
print(f'당신의 학점은 {grade}입니다.')
[ 방법 3 ]
score = int(input('시험점수 >> '))
grade = 'F'
if score >= 90 :
grade = 'A'
elif score >= 80 :
grade = 'B'
elif score >= 70 :
grade = 'C'
print(f'당신의 학점은 {grade}입니다.')
예제2
사용자에게 년도를 입력받아서 윤년인지 아닌지 출력하기
윤년의 조건은 다음과 같다
- 4의배수O 100의배수O 400의배수O --> 윤년 (2000, 2400)
- 4의배수O 100의배수O 400의배수X --> 평년 (1900,2100)
- 4의배수O 100의배수X 400의배수X --> 윤년 (2020, 2024)
- 4의배수X 100의배수X 400의배수X --> 평년 (2023, 2021)
[ 방법 1 ]
year = int(input('년도 >> '))
if year % 400 == 0 : # 400의배수0
print('윤년')
elif year % 100 == 0 : # 400의배수X, 100의배수0
print('평년')
elif year % 4 == 0 : # 400의배수X, 100의배수X, 4의배수0
print('윤년')
else : # 400의배수X, 100의배수X, 4의배수X
print('평년')
[ 방법 2]
# 윤년인 조건1 : 4의 배수0, 100의배수X
# 윤년인 조건2 : 400의 배수0
# 조건1 혹은 조건2 둘중 하나라도 만족하면 윤년
year = int(input('년도 >> '))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 :
print('윤년')
else :
print('평년')
'AI인공지능 by Python > 1. 기초문법' 카테고리의 다른 글
| [ AI 인공지능 ] ⑧ 함수 (0) | 2023.02.07 |
|---|---|
| [ AI 인공지능 ] ⑦ 반복문 (0) | 2023.02.02 |
| [ AI 인공지능 ] ⑤ 반복가능객체 (0) | 2023.01.31 |
| [ AI 인공지능 ] ④ 문자열 (0) | 2023.01.26 |
| [ AI 인공지능 ] ④ 기초함수 - 4 : 연산자2 (0) | 2023.01.26 |