[Python] 3. 조건식, 조건문, 반복문

강미진·2023년 4월 9일

조건식

  • if 구문을 활용해 조건이 True 일 경우와 False 일 경우를 나눠 다른 값을 창출하는 식
  • 조건식은 if~else문으로 변경할 수 있다.
    그러나 모든 if ~ else문은 조건식으로 변경할 수 있는 것은 아니다.
num1 = 10
num2 = 100
num_result = True if num1 > num2 else False
print('num1 > num2 : {}' .format(num_result))
num1 > num2 : False

조건문

  • 조건문 : 특정 조건에 따라 프로그램을 분기하는 것을 말한다.
    └ if문, if ~ else문, if ~ elif문 등이 있다.

▶ IF문

  • True면 실행되고 False면 실행되지 않고 다음 구문으로 넘어간다.
  • 단일 구문이다.
  • 조건문이 실행되기 위해서는 : (콜론)을 찍어줘야 한다.
  • 실행문이 여러개라면 모두 들여쓰기를 해줘야 한다.
if 10 > 5:
    print('10은 5보다 크다.')
    print('또 다른 실행문 ')
print ('조건문이 끝났다.')
10은 5보다 크다.
또 다른 실행문 
조건문이 끝났다.

▶ 실내 온도를 입력하고 온도가 28도 이상이면 냉방 작동이 출력되고 20도 이하면 난방 작동이 출력하는 프로그램

high_temp = 28
low_temp = 20
inner_temp = int(input('실내 온도를 입력하세요.'))
if inner_temp >= high_temp :
    print('냉방 작동')
if inner_temp <= low_temp :
    print('난방 작동')
실내 온도를 입력하세요.28
냉방 작동

▶ IF~Else 구문

조건식의 결과에 따라 둘 중 하나가 실행된다.

pass_score = 80
my_score = int(input('나의 점수는?'))
if my_score >= pass_score:
    print('Pass')
else :
    print('Fail')
나의 점수는?90
Pass

▶ 소수점 첫 번째 자리에서 반올림하는 프로그램

float_num = float(input('소수 입력 :'))
if float_num - int(float_num) >= 0.5:
    print('올림 : {}'.format((int(float_num) + 1)))
else :
    print('버림 : {}'.format(int(float_num)))
소수 입력 :0.65
올림 : 1

▶ 비올 확률에 따라 반응하는 프로그램

percent_rain = int(input('비 올 확률 : '))
min_rain_percent = 55
# 조건식 활용
print('우산을 챙기세요.') if percent_rain >= min_rain_percent else print ('양산을 챙기세요')
# if ~ else 구문 활용
if percent_rain >= min_rain_percent :
    print('우산을 챙기세요')
else :
    print('양산을 챙기세요')
비 올 확률 : 80
우산을 챙기세요.
우산을 챙기세요
  • Pass 키워드 : 실행문을 아직 정하지 못했을 때 사용한다.
    ex)
if my_score >= pass_score:
    pass
else :
    print('Fail')
  • len()함수 : 문자의 길이를 나타낸다.
len('가나다') = 3 → 이때 공백문자도 하나의 글자로 센다.

▶ IF~Elif 문

: 여러 가지 조건식 결과에 따라 실행문이 결정된다.

example_score = int(input('시험 성적을 입력 : '))
grades = ' '
if example_score>= 90 :
    grades =  "A"
elif example_score >= 80 :
    grades = 'B'
elif example_score >= 70 :
    grades = "C"
elif example_score >= 60 :
    grades = "D"
else :
    grades="F"
시험 성적을 입력 : 80
성적 : 80 	 학점 : B
  • 조건식은 순서가 중요하다.

▶ 계절을 입력하면 영어로 번역되는 프로그램

print('계절 : 봄, 여름, 가을, 겨울')
season_str = input('계절 입력 : ')
if season_str == '봄' :
    print('{} == {}'.format('봄' , 'spring'))
elif season_str == '여름' :
    print('{} == {}'.format('여름' , 'summer'))
elif season_str == '가을' :
    print('{} == {}'.format('가을' , 'autumn'))
else  :
    print('{} == {}'.format('겨울' , 'winter'))
계절 입력 : 봄
봄 == spring

▶ 키오스크에서 메뉴를 선택하면 영수증이 출력되는 프로그램

print('1. 카페라떼(5500)\t2. 에스프레소(2500)\t3. 아메리카노(4500)\t4. 곡물라떼(5500)')
user_select = int(input('번호를 입력하시오 : '))
# 메뉴 프린트
print('-'*30)
if user_select ==1:
    print ('메뉴 : 카페라떼')
    print('가격 : 5500원')
elif user_select == 2 :
    print ('메뉴 : 에스프레소')
    print('가격 : 2500원')
elif user_select == 3 :
    print ('메뉴 : 아메리카노')
    print('가격 : 4500원')
elif user_select == 4 :
    print ('메뉴 : 곡물라떼')
    print('가격 : 5500원')
else :
    print('잘못된 선택입니다.')
    print('초기화면으로 돌아갑니다')
print('-' * 30)
1. 카페라떼(5500)	2. 에스프레소(2500)	3. 아메리카노(4500)	4. 곡물라떼(5500)
번호를 입력하시오 : 2
------------------------------
메뉴 : 에스프레소
가격 : 2500원
------------------------------

중첩 조건문 : 조건문 안에 또 다른 조건문을 넣을 수 있다.
단, 세단계 네단계 이상 중첩해서 사용하면 에러가 날 수 있다.

example_score = int(input('성적을 입력 : '))
#점수 환산
if example_score < 60:
    pass
else :
    if example_score >= 90 :
        print('A')
    elif example_score >= 80 :
        print('B')
    elif example_score >= 70 :
        print('C')
    elif example_score >= 60 :
        print('D')
성적을 입력 : 95
A

▶ 출퇴근시 이용하는 교통 수단에 따라 세금을 감면해주는 정책

selec_num = int(input('출 퇴근 대상자인가요? 1. YES 2. NO'))
#if ~ else 중첩구문
if selec_num == 1:
    print('교통수단을 선택하세요.')
    transport = int(input('1. 도보, 자전거 \t2. 버스, 지하철\t 3. 자가용'))
    if transport == 1:
        print('세금 감면 5%')
    elif transport ==2:
        print('세금감면 3%')
    elif transport ==3:
        print('추가 세금 1%')
elif selec_num ==2 :
    print('세금 변동 없음')
else :
    print('잘못 입력하셨습니다.')
출 퇴근 대상자인가요? 1. YES 2. NO >> 1
교통수단을 선택하세요.
1. 도보, 자전거 	2. 버스, 지하철	 3. 자가용 >> 2
세금감면 3%

반복문

  1. 반복문이란 특정 실행을 반복하는 것
  2. 반복문을 사용하면 프로그래밍이 간결하고 유지 보수가 쉽다.
  3. 반복문의 형태
    • 횟수에 의한 반복 :
    for i in range(100) :
    	print('i -> {}'.format(i)
    • 조건에 의한 반복 :
    num = 0 // while (num<10) :
    	print('num -> {}'.format(num))
     	num+=1
    ex) 매일 아침 기상 알람, 게임 반복 실행, 타이머 등

▶ For 구문

for i in range (0,0,0)

  • range(시작, 끝, 단계)
    • range(N) : 숫자 하나만 있으면 0부터 N까지 1씩 증가하며 반복
    • range(N.M) : 숫자가 두 개 있으면 N부터 M까지 1씩 증가하며 반복
    • range(N1, N2, N3) : N1부터 N2-1까지 N3씩 증가하며 반복하라.
      ex) range(1,11,1) : 1부터 10까지 1씩 증가
# 구구단 작성하기
print('-'*30)
num = 0
gugudan_num = int(input('원하는 구구단 숫자를 입력하세요.'))
for num in range (9) :
    result = gugudan_num * (num+1)
    print('{} * {} = {}'.format(gugudan_num, (num+1), result))
print('-' * 30)
------------------------------
원하는 구구단 숫자를 입력하세요. 9
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
------------------------------

▶ 1부터 시작해서 7의 배수의 합이 50이상인 최초의 정수 출력

sum = 0
maxInt = 0
for i in range(1,100):
    if i %  7 == 0 and sum <=50:
        sum += i
        maxInt = i
    print('i : {}'.format(i))
print('7의 배수의 합이 50 이상인 최초의 정수 : {}'.format(maxInt))
7의 배수의 합이 50 이상인 최초의 정수 : 28

▶While 구문

while True

  • while + 조건식(True를 써주면 무한루프가 된다.)
  • 횟수에 의한 반복은 for문을 사용하는게 낫다. while문으로 같은 결과를 제작할 수 있지만 구문이 길어진다.
  • 논리형 데이터를 사용해 무한 반복이 실행되기도 한다.
end_num = 5
n = 0
while (n<=end_num) :
    print(n, end='')
    n+=1
012345

▶ 1부터 20까지의 정수 중 2의 배수와 3의 배수를 구분해서 출력하자

n = 1
while n < 21 :
    if n % 2 == 0 :
        print('{}은 2의 배수이다.' .format(n))
    elif n % 3 == 0 :
        print('{}은 3의 배수이다.' .format(n))
    n += 1
2은 2의 배수이다.
3은 3의 배수이다.
4은 2의 배수이다.
6은 2의 배수이다.
8은 2의 배수이다.
9은 3의 배수이다.
10은 2의 배수이다.
12은 2의 배수이다.
14은 2의 배수이다.
15은 3의 배수이다.
16은 2의 배수이다.
18은 2의 배수이다.
20은 2의 배수이다.

▶ while문을 이용해 사용자가 입력한 구구단 출력

n=1
gugudan_num = int(input('숫자를 입력 : '))
while n < 10 :
    result = gugudan_num * n
    print('{} * {} = {}'.format(gugudan_num, n, result))
    n+=1
숫자를 입력 : 8
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72

자동차 바퀴가 한 번 구를 때마다 0.15mm씩 마모된다.
현재 바퀴 두께 30mm, 최소 운행 가능 바퀴 두께 20mm 일 때, 앞으로 구를 수 있는 횟수는?

current_thickness = 30
rotation_count = 0
remove_thickness = 0.15
while current_thickness >= 20 :
    rotation_count += 1
    current_thickness -= remove_thickness
safe_rotation = rotation_count - 1
print('운행가능 횟수 : {}' .format(safe_rotation))
운행가능 횟수 : 66
profile
g'day mate

0개의 댓글