[Python] 5. 반복문 (흐름과 제어)

Wonder_Land🛕·2022년 6월 15일
0

[Python]

목록 보기
5/12
post-thumbnail
  1. for문
  2. 중첩된 for문
  3. while문
  4. break문과 continue문
  5. Q&A
  6. 마치며

프로그램을 작성하다보면 특정 구간을 여러 번 반복해야할 때가 있죠?
이럴 때 사용하는 구문을 반복문이라 하며, Python에서는 반복문으로 for문while문을 제공합니다.


1. for문

  • for문
    : List, Tuple, Dictionary, String과 같은 객체 항목들을 순회하며 특정 작업을 반복해서 수행하기 위해 사용합니다.

1) 형식

for 변수 in (순회할 객체):
	명령문
    명령문
    ...
  • for문은 순회할 객체첫 번째 항목부터 마지막 항목까지 차례로 변수에 대입합니다.
  • 이 때, 명령문들여쓰기에 주의해야합니다.
dan = int(input("단을 입력하세요: "))
for i in range(1, 10, 1):
    print("{0} x {1} = {2:>2}".format(dan, i, dan*i))

여기서 잠깐!😎 위의 예시에서 등장하는 range()함수에 대해 알아봅시다.

2) range() 함수

  • range()
    : 객체를 생성하는 코드
    : range() 함수는 범위를 다룸
range(시작값, 종료값, 증감치)

(1) range()함수의 인자(argument)

range()의 인자로는 시작값, 종료값, 증감치 이렇게 3가지가 있습니다.
이 인자들에 여러가지 특징이 있는데 알아볼까요?

  • 시작값은 범위에 포함되지만, 종료값은 범위에 포함되지 않습니다.
range(0,10,1)	# 0 ~ 9

위의 코드에서는, 1부터 9까지 1씩 증가하는 값을 element로 갖는 range 객체가 생성됩니다. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

  • 시작값증감치는 생략할 수 있지만, 종료값은 생략할 수 없습니다.
range(10,1)	#시작값 생략

위의 코드에서는, 시작값이 생략된 것으로, 시작값이 생략된 경우에는 기본적으로 0으로 취급합니다.
즉, range(0,10,1)과 동일한 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)가 되겠죠.

range(10)	#시작값, 증감치 생략

위의 코드에서는, 시작값증감치가 생략된 것으로, 증감치가 생략된 경우에는 기본적으로 1로 취급합니다.
즉, range(0,10,1)과 동일한 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)가 되겠죠.

(2) for문에서 Dictionary 객체 이용

names = {1:"가", 2:"나", 3:"다"}   #Dictionary 객체

for key in names:
    print(f'{key} : {names[key]}')

for key, value in names.items():
    print(f'{key} : {value}')

위의 두 for문 모두 결과는 같다.

그러나 2번째 for문에서는 <class 'dict_items'>객체를 사용했는데, 이를 통해 변수 key와 변수 value에 키/값 정보가 차례대로 대입 후 print()함수가 실행된다.


2. 중첩된 for문

  • 중첩된 for문
    : for문 안에 또 다른 for문이 들어있는 형태

1) 형식

for 변수1 in (순회할 객체1):
	for 변수2 in (순회할 객체2):
      명령문
      명령문
      ...
  • 반복 횟수 : (순회할 객체1의 수) * (순회할 객체2의 수)
  • 이 때, 명령문들여쓰기에 주의해야합니다.

3. while문

while문은 for문과 비슷하지만 사용 목적과 방법에 따라 차이가 있습니다.
for문은 반복 횟수가 순회할 객체의 항목 수에 결정
while문은 bool값을 반환하는 조건식의 결과에 의해 결정

  • while문
    : bool값을 반환하는 조건식의 결과에 의해 반복 결정

1) 형식

while (조건식):
	명령문
    명령문
    ...
  • 이 때, 명령문들여쓰기에 주의해야합니다.

  • 조건식False값을 반환해야 while문의 반복이 중지되므로, 무한반복 방지를 고려해야합니다.


4. break문과 continue문

  • for문 : 순회할 객체의 마지막 항목까지 반복
  • while문 : bool값을 반환하는 조건식이 False를 반환할 때까지 반복

그렇다면 논리적으로 이 반복문의 순서를 바꿀 수 있는 방법이 없을까요?

당연히 있겠죠😉
그건 바로, 지금 살펴볼 break문continue문입니다.

  • break문
    : 논리적으로 반복문을 빠져나갈 때 사용
  • continue문
    : 이후 코드는 건너뛰고 반복문을 계속 실행할 때 사용

다음은 입력이 "q"이면 반복문을 빠져나오는 코드입니다.

answer = ""

while True:
    print("명령어를 입력하세요. \'q\'를 입력하면 종료됩니다.")
    answer = input("명령어 : ")
    if answer == "q":
        break;	# "q"일 경우 while문을 빠져나옴
    print(f"{answer}를 입력하셨습니다.")

print("프로그램을 종료합니다...")

[Result]
명령어를 입력하세요. 'q'를 입력하면 종료됩니다.
명령어 : a
a를 입력하셨습니다.
명령어를 입력하세요. 'q'를 입력하면 종료됩니다.
명령어 : q
프로그램을 종료합니다...

위의 break를 통해, 만약 사용자의 입력값이 q라면 반복문을 빠져나오게 됩니다.


5. Q&A

-


6. 마치며

오늘은 흐름과 제어에서 반복문에 대해 살펴보았습니다.
지난 글에서 조건문에 대해 살펴보았는데, 조건문을 통해 반복문을 제어할 수 있으므로 둘은 상호작용하는 구문들입니다.
반복문은 코딩에 있어 반복 수행을 손쉽게 해주는데 의의가 있습니다. 실제로 이용해보면 엄청나게 효율적이죠...(감사합니다 엉엉😂)
for문과 while문을 배웠는데 반복문이라는 카테고리 안에 있지만, 특성이 조금씩 달라 사용할 때 적절한 구문을 선택해서 사용하면 되겠습니다.
반복문 역시 조건문과 함께 코딩에 있어 기초가 되는 구문이므로 열심히 활용해서 능숙히 사용할 수 있어야겠네요😊

[Reference] : 위 글은 다음 내용을 참고, 인용하여 만들어졌습니다.

  • 전반적 내용 : 삼성 SW Expert Academy
profile
아무것도 모르는 컴공 학생의 Wonder_Land

0개의 댓글