KDT 수업/Python

[파이썬] 08. 제어문

니니는 진짜 전설이다 2023. 3. 7. 17:08

1. 제어문

  • 프로그램의 흐름을 제어하는 문장
    • 조건문
    • 반복문

 

2. 조건문

2-1. 비교 연산자

  • <, >, <=, >=, ==, !=
  • 항상 결과는 bool형으로 반환된다(True, False)
print(10 > 5)
print(10 < 5)
print(10 >= 5)
print(10 <= 5)
print(10 == 5)
print(10 != 5)
>>
True
False
True
False
False
True

 

2-2. if 문

if 조건식(결과가 True 또는 False가 나오는 문장):
  조건식이 True인 경우 실행할 문장
bool1 = True
if bool1:
  print('결과는 참입니다')     #True면 출력
print('프로그램을 종료합니다')
>>
결과는 참입니다
프로그램을 종료합니다


bool2 = False

if bool2:
  print('결과는 참입니다')    #False면 건너뜀
print('프로그램을 종료합니다')
>>
프로그램을 종료합니다
age = int(input('나이를 입력하세요: '))
if age > 19:
  print('성인입니다')
print('입력한 나이: ', age)
>>
나이를 입력하세요: 5
입력한 나이:  5


age = int(input('나이를 입력하세요: '))
if age > 19:
  print('성인입니다')
  print('넷플릭스 19+ 를 감상할 수 있습니다')  # if문의 범위는 아래 탭치면 계속!
print('입력한 나이: ', age)
>>
나이를 입력하세요: 20
성인입니다
넷플릭스 19+ 를 감상할 수 있습니다
입력한 나이:  20


age = int(input('나이를 입력하세요: '))
if age > 19: print('성인입니다')   #한줄로도 쓸 수 있다
print('입력한 나이: ', age)
>>
나이를 입력하세요: 20
성인입니다
입력한 나이:  20

 

2-3. if ~ else 문

if 조건식(결과가 True 또는 False가 나오는 문장):
  조건식이 True인 경우 실행할 문장
  ...
else:
  조건식이 False인 경우 실행할 문장
  ...
age = int(input('나이를 입력하세요: '))
if age > 19:
  print('성인입니다')
else:
  print('미성년입니다')
print('입력한 나이: ', age)
>>
나이를 입력하세요: 5
미성년입니다
입력한 나이:  5


age = int(input('나이를 입력하세요: '))
if age > 19:
  print('성인입니다')
  print('넷플릭스 19+ 감상 가능합니다')
else:
  print('미성년입니다')
  print('디즈니를 보세요')
print('입력한 나이: ', age)
>>
나이를 입력하세요: 10
미성년입니다
디즈니를 보세요
입력한 나이:  10

 

 

2-4. 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:                     # True인 조건을 실행하면 바로 조건문을 빠져나온다
  print('성인입니다')
elif age > 14:
  print('청소년입니다')
elif age > 6 : 
  print('어린이입니다')
elif age > 0:
  print('유아입니다')
else:
  print('입력을 확인하세요')

print('입력한 나이: ', age)
>>
나이를 입력하세요: 1
유아입니다
입력한 나이:  1

 

 

 

2-5. 산술 연산자

  • +, -, *, /, %, // ,**
print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 % 3)
print(10 // 3)
print(10 ** 3)
>>
13
7
30
3.3333333333333335
1
3
1000

 

 

2-6. 삼항 연산자

결과가 True일 떄 실행할 문장 if 조건식 else 결과가 False일 때 실행할 문장
num = int(input('숫자를 입력하세요: '))

if num % 2 == 0:
  print('짝수')
else:
  print('홀수')
>>
숫자를 입력하세요: 11
홀수

num = int(input('숫자를 입력하세요: '))
print('짝수') if num % 2 == 0 else print('홀수')
>>
숫자를 입력하세요: 11
홀수

 

 

 

문제

  • 국어점수, 영어점수, 수학점수를 입력받아 총점, 평균, 학점을 구하는 프로그램을 작성해보자.
  • 단, 학점은 평균 기준이며 90점 이상은 A, 80점 이상은 B, 70점 이상은 D, 나머지는 F로 함.
# 문제1

kor, eng, math = input('국어, 영어, 수학 점수를 순서대로 입력하세요: ').split(' ')
total = int(kor) + int(eng) + int(math)
avg = total/3
hak = 'F학점'

if avg >= 90:
  hak = 'A학점'
elif avg >= 80:
  hak = 'B학점'
elif avg >= 70:
  hak = 'C학점'
else:
  hak = 'D학점'

print('총점: ', total)
print('평균: ', avg)
print('학점: ', hak)

>>
국어, 영어, 수학 점수를 순서대로 입력하세요: 80 100 80
총점:  260
평균:  86.66666666666667
학점:  B학점

 

 

문제 2.

  • 숫자를 입력 받아 2의 배수인지, 3의 배수인지 아니면 2,3의 배수가 모두 아닌지를 판별하는 프로그램을 작성해보자.
# 문제2

num = int(input('숫자를 입력하세요: '))

if num % 2 == 0:
  print('%d 는 2의 배수입니다' % num)
elif num % 3 == 0:
  print('%d 는 3의 배수입니다' % num)
else:
  print('%d 는 2의 배수도 3의 배수도 아닙니다' % num)
 
>>
숫자를 입력하세요: 5
5 는 2의 배수도 3의 배수도 아닙니다
# 문제 2 선생님 풀이

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의 배수가 아님')
  
>>
숫자를 입력하세요: 9
9은 3의 배수

 

한줄로 쓰기!

num = int(input('숫자를 입력하세요: '))

print(f'{num}은/는 2의 배수') if num % 2 == 0 else print(f'{num}은/는 3의 배수') if num % 3 ==0 else print(f'{num}은/는 2,3의 배수가 아님')
>>
숫자를 입력하세요: 5
5은/는 2,3의 배수가 아님

 

 

2-7. 논리 연산자(and)

  • 양쪽 두 식의 값이 모두 True 인 경우 결과가 True가 되는 연산자

AB결과

True True True
True False False
False True False
False False False
  • 예) 정보처리기사 자격을 취득하기 위해서는 모든 과목을 40점 이상, 평균이 60점 이상이 되어야 함
# 로그인 프로그램 만들기
# 아이디: admin, 비밀번호: 1234

userid = input('아이디를 입력하세요')
userpw = input('비밀번호를 입력하세요')

if userid == 'admin' and userpw == '1234':
  print('로그인 되었습니다')
else:
  print('아이디 또는 비밀번호를 확인하세요')
  
>>
아이디를 입력하세요nini
비밀번호를 입력하세요1234
아이디 또는 비밀번호를 확인하세요

 

 

 

2-8. 논리 연산자(or)

  • 양쪽 두 식의 값이 하나라도 True인 경우 결과가 True가 되는 연산자

AB결과

True True True
True False True
False True True
False False False

엄마아빠 모셔와! > 엄마만O 아빠만O 둘다O 

 

# 주민등록번호에 의해 성별을 판별하는 프로그램 만들기
# 0010113068518
juminNo = input('주민등록번호 13자리를 - 없이 입력하세요')

if juminNo[6] == '1' or juminNo[6] == '3' or juminNo[6] == '5' or juminNo[6] == '7' or juminNo[6] == '9':
  print('남자')
else: 
  print('여자')
  
>>
주민등록번호 13자리를 - 없이 입력하세요0010112909765
여자

 

 

 

2-9. 논리연산자(not)

  • bool의 값을 반대로 변경해주는 연산자
bool1 = True
if bool1:
  print('결과는 참입니다')
else:
  print('결과는 거짓입니다')
>>
결과는 참입니다


bool1 = True

if not bool1:
  print('결과는 참입니다')
else:
  print('결과는 거짓입니다')
>>
결과는 거짓입니다

 

'KDT 수업 > Python' 카테고리의 다른 글

[파이썬] 10. 딕셔너리  (0) 2023.03.09
[파이썬] 09. 제어문(반복문)  (0) 2023.03.07
[파이썬] 07. 튜플(Tuple)  (0) 2023.03.07
[파이썬] 06. 리스트(list)  (0) 2023.03.06
[파이썬] 05. 문자열 다루기  (0) 2023.03.06