본문 바로가기
Python/Do it! 점프 투 파이썬

[Do it! 파이썬] 3. 제어문

by Couldi 2023. 9. 21.
반응형

23. 9. 21.

- Could -

 

이 글은 막연히 python을 공부해야하나 라는 불안감으로 python으로 프로그래밍을 입문하는 사람들을 위한 글입니다.
python을 시작하는 많은 분들이 보는 '점프 투 파이썬' 책을 중심으로 '필자의 주관'이 잔뜩 담긴 설명을 추가하여, 파이썬 공부에 흥미를 붙이고 책 완주 후의 계획을 수립할 수 있도록 쓰여졌습니다.
'점프 투 파이썬'은 wikidoc(https://wikidocs.net/book/1)으로 무료로도 확인 가능합니다.
1. 제어문 - 분기문, 반복문
2. 분기문 - if문
3. 반복문 - while문, for문

1.  제어문 - 분기문, 반복문

프로그램은 기본적으로 코드를 한줄한줄 실행을 하는걸 원칙으로 삼는다. 경우에 따라서 특정 줄을 건너 뛰고 싶거나, 특정 줄만 반복해서 실행하고 싶다면 어떻게 해야할까? 이럴때 사용하는 것이 제어문이다. 코드의 실행을 '제어'한다는 의미에서 '제어문'이라고 부르며, 크게 조건에 따라 코드 흐름을 결정하는 '분기문', 조건에 따라 코드를 반복 실행시키는 '반복문'으로 나뉜다.

분기문에는 if문, switch문이 있으나, Python의 경우 switch문이 없다. 분기문이라고 하면 if문과 동일한 개념이라 이해해도 좋다. (조건문이라고 if문을 부르는 경우도 많으나 if문 내애 작성해야하는 조건식(조건문)과 혼동할 수 있으므로 여기서는 분기문이라는 표현을 선호한다)

반복문의 경우 while문, for문이 존재한다. 반복시키는 동일한 일을 하는데 왜 두개나 존재하는지 의문이 들 수 있으나, 지금은 '각기 쓸때가 있기 때문에 그렇다' 정도의 어물쩍 넘어가도록 하자.

 

2. 분기문 - if문

if문과 관련해서 알아야할 명령어 들은 다음과 같다.

  • if
  • else
  • elif

각각의 쓰임은 아래 코드와 같다.

if 조건:
    # 조건이 참일 때 실행되는 코드
elif 다른_조건:
    # 다른 조건이 참일 때 실행되는 코드
else:
    # 위의 모든 조건이 거짓일 때 실행되는 코드

위의 코드에서 '조건' 부분에는 일반적으로 비교연사자나 논리연사자를 활용한 조건식이 들어간다. 조건식의 연산 결과로 나오게 되는 데이터타입은 bool 타입이기 때문에, 최종적으로 bool 타입을 반환하는 것들이 '조건'의 자리에 들어간다고 이해하면 된다.

# 사용자로부터 점수를 입력받아 학점을 출력하는 프로그램

score = int(input("점수를 입력하세요: "))

if score >= 90:
    print("A 학점")
elif score >= 80:
    print("B 학점")
elif score >= 70:
    print("C 학점")
elif score >= 60:
    print("D 학점")
else:
    print("F 학점")

위와 같은 예제를 만들어 보는 것도 가능하다.

 

3. 반복문 - while문, for문

반복해서 특정 코드를 실행해야 할 때 사용하는 문을 반복문이라고 부른다. 파이썬에는 크게 while문과 for문이 있다.

while문

while 조건:
    # 조건이 참일 때 계속해서 실행되는 코드

while문은 위와 같이 단순한 구조를 가지고 있다. 문제가 있다면 while 옆에 적는 조건식에 true 값이 있는한 무한히 반복실행된다는 점이다. 따라서 프로그래밍을 처음 공부하는 입장에서 while문을 잘못사용하는 경우 무한 반복되는 프로그램을 만들 가능성이 압도적으로 높다.

while문을 사용할 때는 while문이 해제되는 경우를 먼저 생각하고 코드를 작성하는 습관을 들이는 것이 좋다.

# 1부터 5까지의 숫자를 출력하는 프로그램

count = 1

while count <= 5:
    print(count)
    count += 1

 위 코드를 보면 count라는 변수를 활용하여 while문을 빠져나가는 방법을 마련해 두었다.

 

for문

for 요소 in 시퀀스:
    # 반복해서 실행되는 코드

for문은 while문보다 간편하다. 시퀀스라고 하는 곳에는 나열된 형태의 데이터를 넣어주면 된다. 리스트, 딕셔너리, 문자열, 튜플, 집합 등의 요소가 올 수 있다.

# 리스트의 요소를 반복하여 출력하는 프로그램

fruits = ["사과", "바나나", "딸기", "포도"]

for fruit in fruits:
    print(fruit)

in 앞에 적는 fruit는 for문 내에서 사용할 요소를 담는 변수를 새로 만든거라 생각하면 된다. 

 

반응형

댓글