Python 제어문

Jayce·2023년 5월 7일
0

Python 기초

목록 보기
4/10
post-thumbnail

오늘은 제어문에 대해서 공부해 보려고 합니다.
오늘 공부하려는 제어문은 if문과 for문 그리고 while문 입니다.


If문(조건문)

if문은 영어 해석 그대로 "만약에~"를 사용하는 것이라고 생각하면 편합니다.
예시로 횡단보도를 생각한다면 초록불에는 건너고 빨간불에서는 기다려합니다.
그것을 if문으로 짠다면
if 초록불이 들어왔다면:
횡단보도를 건넌다
else:
초록불을 기다린다.
이와 같이 만들 수 있을 겁니다. 여기서 else는 "그것이 아니라면"이라고 생각하시면 됩니다.
if문에도 여러가지 방법이 있습니다만 기본적인 알고리즘은 같습니다.

for문(반복문)

for문은 "~일 때까지"라고 생각하시면 됩니다.
기본 적인 구조로는
for [변수] in [문자열, 리스트, 튜플]:
[수행부분]
형태입니다.
배열에서 배운 것과 같이 구구단중 3단을 예시로 들면
input

for i in range(1, 10):
	print(3, 'x', i, '=', 3*i)

output

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27

이되겠습니다. i의 값이 1~9까지 들어가게 되고 구구단 형식의 모양으로 만들기 위해 추가적인 문자열('x'와 '=')을 넣어 만들 수 있습니다.

while문(반복문)

while문 true(참,1)와 false(거짓,0)문 입니다.
예시로 6000원이 있는 사람이 3000원 커피를 사려고합니다.
while 돈:
돈 = 돈 - 3000
이되면서 2번 사게되면 0원이 되어 false(0)이 되어 반복문이 정지하게 됩니다.


if문(신호등)

input

color=input('색상을 입력하세요:')
if color=='green':    
    print('건너가세요')
    print('괜찮아요')
elif color=='yellow':
    print('서두르세요')
else:
    print('기다리세요')    

green을 예시로 넣어본다면
output

건너가세요
괜찮아요

로 출력이 됩니다. input값에 green을 넣게 되면 if문 중 green에 해당하는 곳에서 작동하게 되고 '건너가세요' '괜찮아요'가 출력이 되고
yellow를 넣게되면 파이썬의 특성상 if문 중 green에 먼저 도착하지만 조건에 만족하지 않아 다음 조건문인 yellow에 도착합니다. 해당 라인에는 조건이 만족하기에 '서두르세요'가 출력되고,
else문에 의해 yellow와 green 외에는 기다리세요가 출력되게 됩니다.


if문(홀수 짝수)

input

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

3을 예시로 넣게되면
output

홀수입니다.

값 % 2 == 0은
값을 2로 나누었을 때 나머지가 0인 것입니다. 짝수는 2로 나누어 떨어지기 때문에 짝수를 구하는 조건문이 되고 3을 넣었기에 나머지가 1이 되면서 '홀수입니다.'가 출력되게 됩니다.


for문 기초

input

numbers=[1,2,3,4,5] # 리스트
a=0 
for i in numbers: # for 개별값 in 집합
    a=a+i 
    print(i)

print('합계:',a)

output

1
2
3
4
5
합계: 15

i를 numbers의 값만큼 반복한다는 코드입니다. 그렇기에 반복문이 돌 때마다 1,2..,5가 나오고
이것을 더해준 1+2+3+4+5 값인 15가 a로 출력되게됩니다.


range와 반복문

input

# 1~10의 합계 #list(range(1,11))로 range(1,11)안 값 확인
a=0
for i in range(1,11): #1~10
    a+=i

print(a)    

output

55

range는 좌측변수 ~ 우측변수-1 까지라고 인식하시면 이해하기 쉽습니다.
출력값으로 1+2+3+...,10 까지의 값인 55가 출력되게 됩니다.


List안의 Tuple 반복문

input

a=[(1,2),(3,4),(5,6)] # 리스트의 요소가 튜플
for (first,last) in a: # 튜플에 저장 
    print(f'{first} + {last} = {first + last}') 

output

1 + 2 = 3
3 + 4 = 7
5 + 6 = 11

이런식의 응용도 가능합니다.


for문 응용(합격 불합격)

input

points=[90,25,67,45,80]
number=0 
print('총점:',sum(points)) 
print('평균:',sum(points)/len(points)) # 총점/인원
for point in points:
    number=number+1 #학생의 번호 증가
    if point>=60:
        result='합격'
    else:
        result='불합격'
    print(f'{number}번 학생: {point}점, {result}입니다.') 

output

총점: 307
평균: 61.4
1번 학생: 90점, 합격입니다.
2번 학생: 25점, 불합격입니다.
3번 학생: 67점, 합격입니다.
4번 학생: 45점, 불합격입니다.
5번 학생: 80점, 합격입니다.


반복문(while)

input

coffee=5 
money= 30000
while money: # 조건식이 True이면 반복 실행, '' / 0 / False 이면 탈출
    coffee = coffee - 1
    money = money - 3000
    print(f'남은 커피: {coffee}개, 잔액:{money}')
    if not coffee: # '' / 0 이면 False 
        print('품절')
        break  # 반복문 종료 

output

남은 커피: 4개, 잔액:27000
남은 커피: 3개, 잔액:24000
남은 커피: 2개, 잔액:21000
남은 커피: 1개, 잔액:18000
남은 커피: 0개, 잔액:15000
품절

while문은 True, False 형식의 반복문 입니다. 해당 반복문에서는 돈이 남아 커피가 품절 될때까지 반복되었지만

input

coffee=5 
money= 9000
while money: # 조건식이 True이면 반복 실행, '' / 0 / False 이면 탈출
    coffee = coffee - 1
    money = money - 3000
    print(f'남은 커피: {coffee}개, 잔액:{money}')
    if not coffee: # '' / 0 이면 False 
        print('품절')
        break  # 반복문 종료 

output

남은 커피: 4개, 잔액:6000
남은 커피: 3개, 잔액:3000
남은 커피: 2개, 잔액:0

다음과 같이 잔액이 0이 되면 while문에서 false(0원)가 되기때문에 커피가 남아 있더라도 종료가 되게됩니다.


오늘은 제어문에 대해 공부해 보았습니다.
다음 시간엔 함수에 대하 공부해 오도록하겠습니다. 그럼 오늘도

everyone power through to the end

profile
Dreamer

0개의 댓글