1. 제어명령이란
- 프로그램 흐름을 제어하는 명령어
- 프로그램 흐름을 효율적으로 사용하기 위해 사용
- 조건문: if 문
- 문 반복: while 문, for 문
2. 조건문
2-1 비교 연산자
- 참인지 거짓인지 판단하는 데 사용되며 참이면 True, 거짓이면 False를 반환합니다.
비교 연산자 | 설명 |
x > y | x는 y보다 크다 |
x >= y | x는 y보다 크거나 같습니다 |
xx는 y보다 작습니다 |
|
x<=y | x는 y보다 작거나 같습니다. |
엑스 == 와이 | x는 y와 같음 |
엑스 != 와이 | x는 y와 같지 않습니다 |
print(10 > 5)
>>> True
print(10 < 5)
>>> False
print(10 >= 5)
>>> True
print(10 <= 5)
>>> False
print(10 == 5)
>>> False
print(10 != 5 )
>>> True
2-2 if 문
- if 문의 형식
if 조건식(결과가 True 또는 False로 반환하는 문장):
조건식이 True인 경우 실행할 문장
...
bool1 = True
if bool1:
print('결과는 참 입니다')
print('프로그램을 종료합니다')
>>> 결과는 참 입니다
프로그램을 종료합니다
- statement + statement가 false일 때 반환되면 true일 때 실행되는 문장을 건너뜁니다.
bool2 = False
if bool2: # False
print('결과는 참 입니다')
print('프로그램을 종료합니다')
- 나이를 받아서 성인인지 판단하는 코드를 만들어 봅시다.
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 20
성인입니다
넷플릭스 성인영화를 감상할 수 있습니다
입력한나이: 20
- 세미콜론 옆에 실행할 명령문을 작성할 수 있습니다. 하나의 명령문만 실행합니다.
- 여러 문을 탭으로 들여쓰기하여 하나의 if 문에서 함께 처리할 수 있습니다.
age = int(input('나이를 입력하세요: '))
if age > 19: print('성인입니다')
print('입력한나이: ', age)
>>>나이를 입력하세요: 10
입력한나이: 10
2-3 if-else 문
if 조건식(결과가 True 또는 False로 반환하는 문장):
조건식이 True인 경우 실행할 문장
...
else:
조건식이 False인 경우 실행할 문장
...
- 나이를 받고 성인이 되면 넷플릭스 영화를 보고 성인이 아니면 디즈니를 보도록 하는 프로그램을 작성해 봅시다.
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
else:
print('성인이 아닙니다')
print('디즈니를 보세요')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 5
성인이 아닙니다
디즈니를 보세요
입력한나이: 5
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
print('넷플릭스 성인영화를 감상할 수 있습니다')
else:
print('성인이 아닙니다')
print('디즈니를 보세요')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 20
성인입니다
넷플릭스 성인영화를 감상할 수 있습니다
입력한나이: 20
2-4 if-elif-else 문
- if ~ elif ~ else 문의 형식
if 조건식1(결과가 True 또는 False로 반환하는 문장):
조건식1이 True인 경우 실행할 문장
...
elif 조건식2:
조건식2가 True인 경우 실행할 문장
...
elif 조건식3:
조건식3이 True인 경우 실행할 문장
...
else:
위의 모든 조건식이 False인 경우 실행할 문장
...
> else는 필수문장이 아님!
- 나이를 입력으로 받아 성인이나 청소년, 어린이나 유아를 출력하는 프로그램을 작성해 봅시다.
age = int(input('나이를 입력하세요: '))
if age > 19:
print('성인입니다')
elif age > 14:
print('청소년입니다')
elif age > 6:
print('어린이입니다')
elif age > 0 :
print('유아입니다')
else:
print('잘못 입력되었습니다')
print('입력한나이: ', age)
>>> 나이를 입력하세요: 20
성인입니다
입력한나이: 20
>>> 나이를 입력하세요: -1
잘못 입력되었습니다
입력한나이: -1
2-5 산술 연산자
산술 연산자 | 설명 |
+ | 덧셈 연산 |
– | 빼기 연산 |
* | 곱셈 연산 |
/ | 분할 작업 |
// | 몫 연산 |
% | 잔차 연산 |
** |
print(10 + 3)
>>> 13
print(10 - 3)
>>> 7
print(10 * 3)
>>> 30
print(10 / 3)
>>> 3.3333333333333335
print(10 // 3)
>>> 3
print(10 % 3)
>>> 1
print(10 ** 3)
>>> 1000
- 3.10 작업 결과 부동 소수점 오류의 결과이다
2-6 삼항 연산자
결과가 True일 경우 실행할 문장 if 조건식 else 결과가 False일 경우 실행할 문장
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
print('짝수입니다')
else:
print('홀수입니다')
>>> 숫자를 입력하세요: 11
홀수입니다
- 위의 if ~ else 문을 삼항 연산자로 표현해 봅시다.
num = int(input('숫자를 입력하세요: '))
print('짝수입니다') if num % 2 == 0 else print('홀수입니다')
>>> 숫자를 입력하세요: 11
홀수입니다
과제 1
- 국어, 영어, 수학으로 점수를 받아 총점, 평균, 성적을 계산하는 프로그램을 작성해 보자.
- 단, 성적은 평균을 기준으로 하며, 90점 이상은 A, 80점 이상은 B, 70점 이상은 C, 60점 이상은 D, 나머지는 F입니다.
kor, eng, math = input('국어, 영어, 수학점수를 차례대로 입력하세요: ').split(' ')
total = int(kor) + int(eng) + int(math)
avg = total / 3
if avg >= 90:
grade="A"
elif avg >= 80:
grade="B"
elif avg >= 70:
grade="C"
elif avg >= 60:
grade="D"
else:
grade="F"
print('총점은 %3.0f점 입니다' %total)
print('평균은 %4.2f점 입니다' %avg)
print('학점은 %s 입니다' %grade)
>>> 국어, 영어, 수학점수를 차례대로 입력하세요: 100 80 55
총점은 235점 입니다
평균은 78.33점 입니다
학점은 C 입니다
삼항 연산자를 사용하여 위의 구문을 작성해 보겠습니다.
kor, eng, math = input('국어, 영어, 수학점수를 차례대로 입력하세요: ').split(' ')
total = int(kor) + int(eng) + int(math)
avg = total / 3
print('총점은 %3.0f점 입니다' %total)
print('평균은 %4.2f점 입니다' %avg)
print('학점은 A입니다') if avg >= 90 else print('학점은 B입니다') if avg >= 80 else print('학점은 C입니다') if avg >= 70 else print('학점은 D입니다') if avg >= 60 else print('학점은 F입니다')
>>> 국어, 영어, 수학점수를 차례대로 입력하세요: 100 80 55
총점은 235점 입니다
평균은 78.33점 입니다
학점은 C입니다
삼항 연산자를 사용할 때 더 많은 명령을 실행해야 할수록 가독성이 떨어집니다.
과제 2
- 숫자를 받아 그것이 2, 3 또는 둘 다의 배수인지 결정하는 프로그램을 작성해 봅시다.
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
print(f'{num}은/는 2의 배수입니다')
elif num % 3 == 0:
print(f'{num}은/는 3의 배수입니다')
else:
print(f'{num}은/는 2와3의 배수가 모두 아닙니다')
>>> 숫자를 입력하세요: 5
5은 2와3의 배수가 모두 아닙니다
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
if num % 3 == 0:
print(f'{num}은/는 2와 3의 배수')
else:
print(f'{num}은/는 2의 배수입니다')
elif num % 3 == 0:
print(f'{num}은/는 3의 배수입니다')
else:
print(f'{num}은/는 2와3의 배수가 모두 아닙니다')
>>> 숫자를 입력하세요: 22
22은/는 2의 배수입니다
삼항 연산자를 사용하여 위의 구문을 작성해 보겠습니다.
num = int(input('숫자를 입력하세요: '))
print('2의 배수입니다') if num % 2 == 0 else print('3의 배수입니다') if num % 3 == 0 else print('2와3의 배수가 모두 아닙니다')
>>> 숫자를 입력하세요: 20
2의 배수입니다
2-7 논리 연산자
1) 그리고
- 두 표현식의 값이 모두 True이면 결과가 True인 연산자.
- 정보처리기사 자격을 취득하기 위해서는 전 과목의 점수가 40점 이상, 평균점수가 60점 이상이어야 합니다.
ㅏ | 비 | 결과 |
진실 | 진실 | 진실 |
진실 | 잘못된 | 잘못된 |
잘못된 | 진실 | 잘못된 |
잘못된 | 잘못된 | 잘못된 |
간단한 로그인 프로그램을 만들어 봅시다.
user_id = input('아이디를 입력하세요')
user_pw = input('비밀번호를 입력하세요')
if user_id == 'admin' and user_pw == '1234':
print('로그인 성공!')
else:
print('아이디 또는 비밀번호를 확인하세요')
>>> 아이디를 입력하세요: admin
비밀번호를 입력하세요: 1234
로그인 성공!
>>> 아이디를 입력하세요: admin
비밀번호를 입력하세요: 1111
아이디 또는 비밀번호를 확인하세요
2) 또는
- 식이 True이면 결과가 True인 연산자입니다.
ㅏ | 비 | 결과 |
진실 | 진실 | 진실 |
진실 | 잘못된 | 진실 |
잘못된 | 진실 | 진실 |
잘못된 | 잘못된 | 잘못된 |
주민등록번호를 입력하여 성별을 판별하는 프로그램을 작성해 봅시다.
jm_num = input('주민등록번호 13자리를 "-" 없이 입력하세요: ')
if jm_num(6) == '1' or jm_num(6) == '3' or jm_num(6) == '5' or jm_num(6) == '7' or jm_num(6) == '9':
print('남자입니다')
else:
print('여자입니다')
>>> 주민등록번호 13자리를 "-" 없이 입력하세요: 0010113068515
남자입니다
3) 아니다
- bool 값을 반전시키는 연산자
- 참 → 거짓 , 거짓 → 참
bool1 = True
if bool1:
print('결과는 참 입니다')
else:
print('결과는 거짓 입니다')
>>> 결과는 참 입니다
bool1 = True
if not bool1:
print('결과는 참 입니다')
else:
print('결과는 거짓 입니다')
>>> 결과는 거짓 입니다