반응형
반복문(Loop)이란?
- 동일한 코드 블록을 여러 번 실행할 때 사용
- 리스트, 튜플, 문자열 등과 같은 반복 가능한(iterable) 객체의 요소를 하나씩 순회할 때
- 특정 조건이 충족될 때까지 코드를 반복 실행할 때
- 반복문의 종류에는 for, while이 있음
for문
기본 설명
- 순회 가능한 객체의 각 요소를 하나씩 가져와서 반복 작업을 수행
구문
- for 변수 in 반복가능객체:
- in 안에 들어있는 데이터에서 데이터를 하나씩 꺼내 변수에 대입
- 반복가능객체에는 문자열, 숫자 상관X
- 들여쓰기를 사용하여야 반복문의 코드로 인식 (if문과 동일)
반복 중단 설정 (break)
- 반복문이 특정 조건을 만족 했을 경우, 더 이상 반복문을 수행 할 이유가 없을 때 사용된다.
- 이 때, break를 사용하여 반복문을 중단 할 수 있다.
- 반복문 break 사용 예시 - 리스트의 과일을 하나씩 출력, 망고가 나오면 해당 반복문을 중단
fruits = ['apple', 'mango', 'banana']
for i in fruits:
print(i) # 과일이름 출력
if i == 'mango':
break # 망고가 나오면 반복문 중단
>>> apple
>>> mango
수행 무시 (continue)
- 반복문을 멈추는건 break이지만, 반복문의 특정 부분만 수행하지 않게도 할 수 있다.
- 이 때는 continue를 사용하여 반복문을 제어 할 수 있다.
- 반복문 continue 사용 예시 - 리스트의 과일을 하나씩 출력, 망고가 나오면 해당 차례는 건너뜀
fruits = ['apple', 'mango', 'banana']
for i in fruits:
if i == 'mango':
continue # 망고가 나오면 스킵
print(i) # 과일이름 출력
>>> apple
>>> banana
사용 예시
기본 for문 예시
- 리스트의 3개의 값을 넣고, 값 차례로 출력
my_list = [10, 20, 30]
for i in my_list:
print(i)
>>> 10
>>> 20
>>> 30
- for문을 사용한 문자열 반복 예시
fruits = ['사과', '배', '망고']
for i in fruits:
print(i)
>>> 사과
>>> 배
>>> 망고
인덱스 값 활용 예시 (enumerate)
- 리스트의 데이터가 아닌 인덱스의 값(0,1,2~) 이용
- enumerate : 인덱스의 값과 데이터의 값을 각각 따로 변수로 저장 가능
# enumerate 를 사용하여 객체의 인덱스 값을 불러올 수 있음.
fruits = ['apple', 'mango', 'banana']
for i,j in enumerate(fruits):
print(i, j)
>>> 0 apple
>>> 1 mango
>>> 2 banana
딕셔너리 활용 (values, items)
- 키와 밸류 이용
- 딕셔너리는 기본적으로 키 값 기준
- values()와 items()를 사용하여 키와 밸류 값 호출 가능
[ 키를 이용한 for반복문 ]
# 딕셔너리는 키 값만 출력
my_phone = {'brand' : 'apple' , 'model' : 'iPhone12'}
for data in my_phone:
print(data)
>>> brand
>>> model
[ 밸류를 이용한 for반복문 ( values() ) ]
# 밸류 값만 출력
my_phone = {'brand' : 'apple' , 'model' : 'iPhone12'}
for data in my_phone.values():
print(data)
>>> apple
>>> iPhone12
[ 키와 밸류를 이용한 for반복문 ( items() ) ]
# 키와 밸류 값 출력, 각각의 변수에 저장하여 이용 가능
my_phone = {'brand' : 'apple' , 'model' : 'iPhone12'}
for key, value in my_phone.items():
print(key, value)
>>> brand apple
>>> model iPhone12
범위 활용 (range)
- range 함수를 이용하면 된다. 반복문에서 가장 많이 활용되니 꼭 알아두고 넘어가는 것이 좋다.
- 또한, enumerate와 같이 len을 이용하여 특정 객체의 길이를 구하고 반복문에 사용 할 수 있다.
- range 함수 자세히 보기 : https://luvris2.tistory.com/16
- range 함수를 활용한 for반복문 사용 예시
- range( x : y : z ) 시작(x) : 끝(y) : 스텝(z)
# enumerate 와 비슷하게 사용 가능
my_list = [1, 2, 3]
for i in range(len(my_list)): # len(my_list) = 3
print('hello')
>>> hello
>>> hello
>>> hello
While
기본 설명
조건이 참(True)인 동안 코드 블록을 반복 실행
구문
- while (조건식) : 조건식에 만족하는 동안 반복 수행
반복 중단 설정 (break)
- 문자를 입력받아 특정 문자가 입력되면 while반복문을 멈춰보자 (break)
- 조건1. 문장을 입력받는다.
- 조건2. 입력받은 문자가 "그만" 일 경우, 반복문을 종료한다.
사용시 주의점 (무한 반복) (=무한 루프)
- while은 조건식만 만족되면 반복을 수행하기 때문에 무한반복(무한루프)에 빠지기 쉽다.
- 조건에 사용 될 변수의 초기값 설정 필수
- 반복 수행 중 종료값(예시에서는 증가값) 설정 필수
사용 예시
기본 while문 예시
- 올바른 while 사용 예시
i = 0 # 초기값 설정
while i < 3 :
print("hello")
i += 1 #증가값 설정
# i값 증가 코드가 없으면 무한루프
>>> hello
>>> hello
>>> hello
while + break 예시
- break를 사용한 예시
while True:
a = input("문장입력 : ")
print(a)
if a == '그만':
break
>>> 문장입력 : 반갑습니다.
>>> 반갑습니다.
>>> 문장입력 : 그만
>>> 그만
조건을 이용한 while 예시
- break를 사용하지 않은 예시
# 유저에게 문자를 입력받고 입력한 문자 그대로 출력, 그만이라고 입력하면 프로그램 종료
a = input("문장입력 : ")
while (a != '그만'):
print(a)
a=input("문장입력 : ")
>>> 문장입력 : 안녕하세요
>>> 안녕하세요
>>> 문장입력 : 그만
반응형