티스토리 뷰

Python

[Python] 반복문 - while 문, for 문

ellie.strong 2020. 10. 23. 20:05
728x90

코딩 테스트>> 반복을 사용할 때 while문, for문 둘 다 사용해도 상관 없지만, 코딩 테스트에서의 실제 사용 예시를 확인해보면, 대부분의 경우에서 for문의 소스코드가 더 짧은 경우가 많다. 

 

while 문

예) 1부터 9까지 각 정수의 합을 계산하는 경우

i = 1
result = 0

while i <= 9:
    result += i
    i += 1
    
print(result) # 45

예) 1부터 9까지의 수 중에서 홀수만 더하는 경우

i = 1
result = 0

while i <= 9:
    if i % 2 == 1:
        result += i
    i += 1
    
print(result) # 25

 

for 문

for 변수 in 리스트[튜플, 문자열 등 가능]:
    실행할 소스

 

range(시작 값, 끝 값 + 1) ex. range(1, 10) → 1부터 9까지

 

예) 1부터 9까지 각 정수의 합을 계산하는 경우

result = 0

for i in range(1, 10):
    result += i
    
print(result) # 45

range(숫자) ex. range(5) → 0부터 4까지

주로 리스트나 튜플 데이터의 모든 원소를 첫 번째 인덱스부터 방문해야 할 때 이 방법을 사용한다. 

 

예) 학생의 번호를 1번부터 매긴다고 했을 때, 학생마다 합격 여부를 출력해야하는 경우

scores = [90, 85, 77, 65, 97]

fot i in range(5):
    if scores[i] >= 80:
        print(i + 1, "번 학생은 합격입니다.")

 

for문 거꾸로 반복하기

range(시작값, 끝 값 - 1, -1) ex. range(10, 1, -1) → 10부터 2까지

 

continue

반복문 안에서 continue를 만나면 프로그램의 흐름은 반복문의 처음으로 돌아간다. 

 

예) 위의 예제에서 2번 학생과 4번 학생은 블랙리스트에 올라가 있어서 점수가 높아도 합격하지 못하는 경우

scores = [90, 85, 77, 65, 97]
black_list = {2, 4}

fot i in range(5):
    if i + 1 in black_list:
        continue
    if scores[i] >= 80:
        print(i + 1, "번 학생은 합격입니다.")

 

반복문의 중첩

예) 구구단

for i in range(2, 10):
    for j in range(1, 10):
        print(i, "X", j, "=", i * j)
    print()

 

728x90
댓글
공지사항
최근에 올라온 글