Python - 반복문(Loop) for/while 사용 방법, 사용 예시

반응형

반복문(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("문장입력 : ")
>>> 문장입력 : 안녕하세요
>>> 안녕하세요
>>> 문장입력 : 그만

 

반응형