- for문
- 중첩된 for문
- while문
- break문과 continue문
- Q&A
- 마치며
프로그램을 작성하다보면 특정 구간을 여러 번 반복해야할 때가 있죠?
이럴 때 사용하는 구문을 반복문이라 하며, Python에서는 반복문으로 for문과 while문을 제공합니다.
- for문
: List, Tuple, Dictionary, String과 같은 객체 항목들을 순회하며 특정 작업을 반복해서 수행하기 위해 사용합니다.
for 변수 in (순회할 객체): 명령문 명령문 ...
순회할 객체
의 첫 번째 항목부터 마지막 항목까지 차례로 변수에 대입합니다.명령문
은 들여쓰기에 주의해야합니다.dan = int(input("단을 입력하세요: "))
for i in range(1, 10, 1):
print("{0} x {1} = {2:>2}".format(dan, i, dan*i))
여기서 잠깐!😎 위의 예시에서 등장하는 range()
함수에 대해 알아봅시다.
- range()
: 객체를 생성하는 코드
: range() 함수는 범위를 다룸range(시작값, 종료값, 증감치)
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)가 되겠죠.
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()
함수가 실행된다.
- 중첩된 for문
: for문 안에 또 다른 for문이 들어있는 형태
for 변수1 in (순회할 객체1): for 변수2 in (순회할 객체2): 명령문 명령문 ...
- 반복 횟수 : (순회할 객체1의 수) * (순회할 객체2의 수)
- 이 때,
명령문
은 들여쓰기에 주의해야합니다.
while문은 for문과 비슷하지만 사용 목적과 방법에 따라 차이가 있습니다.
for문은 반복 횟수가 순회할 객체의 항목 수에 결정
while문은 bool값을 반환하는 조건식의 결과에 의해 결정
- while문
: bool값을 반환하는 조건식의 결과에 의해 반복 결정
while (조건식): 명령문 명령문 ...
이 때, 명령문
은 들여쓰기에 주의해야합니다.
조건식
이 False값을 반환해야 while문의 반복이 중지되므로, 무한반복 방지를 고려해야합니다.
그렇다면 논리적으로 이 반복문의 순서를 바꿀 수 있는 방법이 없을까요?
당연히 있겠죠😉
그건 바로, 지금 살펴볼 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
라면 반복문을 빠져나오게 됩니다.
-
오늘은 흐름과 제어에서 반복문에 대해 살펴보았습니다.
지난 글에서 조건문에 대해 살펴보았는데, 조건문을 통해 반복문을 제어할 수 있으므로 둘은 상호작용하는 구문들입니다.
반복문은 코딩에 있어 반복 수행을 손쉽게 해주는데 의의가 있습니다. 실제로 이용해보면 엄청나게 효율적이죠...(감사합니다 엉엉😂)
for문과 while문을 배웠는데 반복문
이라는 카테고리 안에 있지만, 특성이 조금씩 달라 사용할 때 적절한 구문을 선택해서 사용하면 되겠습니다.
반복문 역시 조건문과 함께 코딩에 있어 기초가 되는 구문이므로 열심히 활용해서 능숙히 사용할 수 있어야겠네요😊
[Reference] : 위 글은 다음 내용을 참고, 인용하여 만들어졌습니다.
- 전반적 내용 : 삼성 SW Expert Academy