파이썬의 연산자와 제어문(IF, FOR, WHILE)
(이 글은 '언어와정보처리' 과목에서 '파이썬 기초' 수업 내용을 정리한 글이다.)
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 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 줄인 값으로 업데이트
특정 조건이 맞아 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 문도 자주 등ㅈ아하기 때문에 코드의 흐름을 파악하면서 입/출력의 데이터 형태와 종류를 잘 따라가야 함