본문 바로가기
python

파이썬의 연산자와 제어문(IF, FOR, WHILE)

by 햇농nongnong 2021. 12. 8.

(이 글은 '언어와정보처리' 과목에서 '파이썬 기초' 수업 내용을 정리한 글이다.)

 

pytorch 에 대해 들어가기 전, python 기초를 간단하게 리뷰하고 넘어가려한다.

 

 

연산자 (operator)


자료형을 연산하기 위해 사용하는 연산 기호

 

연산자 종류

  • 산술 연산자 : 사칙 연산을 포함한 수 연산을 할 때 사용
    +, -, *, /, //, % ...
  • 비교 연산자 : 두 값을 비교할 때 사용
    >, <, == (같다), != (같지 않다)
    비교 연산의 결과는 항상 True(참) 또는 False(거짓)로 나타남
  • 논리 연산자 : 여러 개의 조건을 조합하여 연산할 때 사용
    && (또는 and), || (또는 or), ! (또는 not)

 

 

제어문


  • 자료형을 대상으로 연산자의 조합을 사용하여 조건에 맞는 결과를 출력
  • 주어진 조건을 통해 자동으로 데이터 처리하기 때문에 반복되는 작업을 단순화 할 수 있음

 

제어문의 종류

  • IF 문 : 만약 ~
  • FOR 문 : ~ 동안 (~부터 ~까지)
  • WHILE 문 : ~ 동안 ( ~가 되지 않는 한 무한 반복)

 

1) IF 문

bag = ['pencil', 'apple' ,'book', 'book', 'book', 'rose']
to_check = 'money'

if to_check in bag :
    message = "You have {} in the bag".format(to_check)
    print(message)
else :       # elif to_check not in bag 와 동일
    message = "Put {} in the bag.".format(to_check)
    print(message)

결과 : Put money in the bag.

 

참고) TRY/EXCEPT

- IF/ELSE 와 기능이 비슷하지만 TRY 에서 에러가 발생하면 EXCEPT 로 가는 방식

- 에러가 발생하더라도 코드 실행이 멈추지 않고 EXCEPT 를 통해 이어서 진행

a = [1,2,3]

if 1 in a :
    print(a[3])   # out of range 에러 발생
else :
    print(a)

결과 : IndexError: list index out of range

--> if 문을 사용하면 에러가 발생하고 멈춤

a = [1,2,3]

try : 
    print(a[3])
except :
    print(a)

결과 : [1,2,3]

--> TRY 에서 에러가 발생하면 EXCEPT 의 결과 반환

 

 

2) FOR 문

  • FOR문 : ~~동안 하나씩 ~~해라.
  • 주어진 횟수만큼 반복하는 명령어
for i in [2,4,6]:
	print(i)

결과 : 2

        4

        6

for i in 'Hello' :
    print(i)

결과 : H

        e

        l

        l

        o

 

for문 활용 예시

- iterable 형태의 데이터를 차례로 하나씩 추출하는 기능

--> iterable : loop 이 가능한 형태의 데이터를 의미 (문자열, 리스트, 파일 ..)

- range(3) 은 0부터 시작하여 3개의 숫자 (0,1,2) 를 의미

a = [15, 45, 32, 11, 8, 25]

for i in a :        # a 라는 리스트에 있는 element 를 하나씩 i 라는 변수에 저장
    if i > 20 :     # i 라는 변수에 저장된 element 가 20보다 큰지 체크
        print(i)    # 20보다 크다면 해당 element를 출력

결과 : 45

        32

        25

 

이중 FOR문 (Nested for Statement)

--> for 문 안에서 차례로 반복되는 동안, 그 안에서 또 다른 for문으로 반복되는 형태

예제 : 구구단 중 3단과 4단 이어서 출력해보기 (nested for 문 사용하기)

# 구구단 3단, 4단 이어서 출력하기 (nested FOR문 사용)

for i in range(3,5):   #range(시작, 끝+1) 로 나타낼 수 있음
    for j in range(9):
        gugudan = "{} x {} = {}".format(i, j+1, i*(j+1))
        print(gugudan)
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
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
 
 

3) WHILE 문

WHILE 문 : ~동안 (~가 되지 않는 한 무한 반복)

  • 주어진 조건에서 벗어날 때까지 계속 돌아가게 하는 명령어
  • 사용 시 주의 : 조건이 영영 끝나지 않게 되어 있으면 의도치 않게 '무한 루프' 에 빠지게 됨
a = 5

while a > 0:       # a 가 0 보다 크다면 계속 (0과 같거나 작을 때 멈춤)
    print(a)
    a = a - 1      # 현재 a 의 값을 1 줄인 값으로 업데이트
결과 :  5
         4
         3
         2
         1
 

특정 조건이 맞아 while 루프를 끝낼 때는 break 을 사용함

num_coffee = 3

while True : # while True 는 무한 루프
    print(num_coffee)
    num_coffee = num_coffee - 1
    if num_coffee == 0:               # 이 코드가 없으면 num_coffee 는 끝없이 음수로
        print("no more coffee")       # 계속 줄어드는 상태로 무한루프
        break

결과 : 3

        2

        1

        no more coffee

 

제어문 정리

  • IF 문, FOR 문, WHILE 문 모두 파이썬 코딩의 핵심 코드인 만큼 반복해서 사용하면서 이러한 기능의 이해도를 높이는 것이 매우 중요
  • 특히 IF 문과 FOR 문은 함께 사용되는 경우가 많고, N중(이중, 삼중...) FOR 문도 자주 등ㅈ아하기 때문에 코드의 흐름을 파악하면서 입/출력의 데이터 형태와 종류를 잘 따라가야 함

댓글