1. 반복문 loop
개념
DEF) 문장을 반복하도록 만드는 것. 정해진 동작을 반복적으로 수행할 때 사용하는 명령어
- 일상에서의 예
- 학생 100명의 성적 산출
- 쇼핑몰에서 상품 추천 ← 사용자의 상품 구매 특징 vs 다른 상품 간의 특징
- MS워드에서 단어 바꾸기 명령 실행 ← 바꾸고자 하는 단어와 각 단어의 비교를 통한 전체 단어에 적용
- 구성 요소: 반복 시작 조건, 종료 조건, 수행 명령
- for, while이라는 명령 키워드 사용
2. 명령어
for문
DEF) 가장 기본적인 반복문으로, 반복 범위를 지정하여 반복을 수행
- for를 입력하고 반복되는 범위의 지정 필요
for looper in [1,2,3,4,5]:
print("hello")
hello
hello
hello
hello
hello
*리스트에 있는 각각의 값을 하나씩 가져와 looper라는 변수에 할당.
*한 번 할당할 때마다 다음 줄의 print(”hello”)를 실행 → 총 5번의 반복
- 변수 자체를 출력하는 경우
for looper in [1,2,3,4,5]
print(looper)
1
2
3
4
5
- 만일 100번을 반복해야 한다면? range 키워드 사용
for looper in range(100):
print("hello")
hello #100번 반복
.
.
hello
- 이 코드에서 looper 변수에는 0~99까지의 값, 총 100개의 값이 들어감. (리스트의 인덱싱 문법과 유사)
for 변수 in range(시작 번호, 마지막 번호, 증가값)
- ‘시작 번호’와 ‘증가값’은 생략 가능 (자동으로 초기 시작 번호는 0, 증가값은 1)
- ‘마지막 번호’에 입력한 숫자 바로 앞까지 리스트를 생성함.
- range(1,5) → [1,2,3,4]
- range(0,5) → [0,1,2,3,4]
- 문자열 리스트의 경우
for i in 'abcdefg':
print(i)
a
b
c
d
e
f
g
for i in ['americano','latte','frappuccino']:
print(i)
americano
latte
frappuccino
❗- 반복문의 변수는 대부분 i, j, k로 지정
- 반복문은 대부분 0부터 반복을 시작
- 반복문을 잘못 작성하면 무한 루프라고 하는 오류 발생
- 변형: 증가값 지정
for i in range(1, 10, 2): #1부터 9까지 2씩 증가시키면서 반복문을 수행한다
print(i)
1
3
5
7
9
for i in range(10, 1, -1): #10부터 2까지 1씩 감소시키면서 반복문을 수행한다.
print(i)
10
9
8
.
.
2
while문
DEF) 어떤 조건이 만족하는 동안 명령 블록을 수행하고, 해당 조건이 거짓일 경우 더이상 반복 명령문을 수행하지 않는 구문
i=1
while i<10: #i가 10 미만일 때까지
print(i)
i += 1 #i에 1을 더하는 것을 반복하다가 i가 10이 되면 반복 종료
1
2
3
4
5
6
7
8
9
*i가 10이 되는 순간 = (i<10)이 False가 됨을 의미 ⇒ 반복문 종료
- for문과 while문의 차이?
- 기본적으로 유사하며 서로 변환이 가능. But, 쓰임에 차이가 있음
- for문은 반복 횟수를 정확히 알고 있고, 반복 횟수가 변하지 않을 때 사용
- while문은 반복 실행횟수가 명확하지 X, 어떤 조건 만족시 프로그램을 종료하고자 할 때 사용
*for문 예시) 반복 실행횟수를 명확히 알 때*while문 예시) 반복 실행 횟수가 불명확할 때for i in range(0,5): print(i) 0 1 2 3 4
i=0 while i<5: print(i) i=i+1 0 1 2 3 4
3. 반복문의 제어
break문
DEF) 반복문에서 논리적으로 반복을 종료하는 방법
for i in range(10):
if i==5: break #i가 5가 되면 반복 종료
print(i)
print("End of Program") #반복 종료 후 'End of Program' 출력
0
1
2
3
4
End of Program
continue문
- break문과 달리 특정 조건에서 남은 명령을 건너뛰고 다음 반복문 수행
for i in range(10):
if i==5: continue #i가 5가 되면 i를 출력하지 않음
print(i)
print("End of Program")
0
1
2
3
4
6
7
8
9
End of Program
else문
DEF) 어떤 조건이 완전히 끝났을 때 한번 더 실행해주는 역할
- 본래 반복문 수행이 끝나면 반복문을 빠져나와 다음 코드를 수행하기에 필요 없을 수 있음
- 그러나 break 등으로 코드 종료시 else문이 수행되지 않으므로 해당 반복문이 중간에 종료 없이 완벽히 수행되었는지를 명시적으로 확인하기 위해 필요
for i in range(10):
print(i)
else:
print("End of Program")
0
1
2
3
4
5
6
7
8
9
End of Program
*continue문, break문, else문 모두 while문에서도 사용 가능
- 앞서 설명한 제어 구문은 특히 긴 코드를 작성할 때는 사용하지 않길 권유
- break문이나 continue문이 있다면 의도치 않게 코드가 오작동할 수도 있음.
실습
구구단 계산기
1) 프로그램 시작시 ‘구구단 몇 단을 계산할까?’가 출력됨
2) 사용자는 계산하고 싶은 구구단 단수 입력
3) 프로그램은 ‘구구단 n단을 계산한다.’라는 메세지와 함께 구구단의 결과를 출력
print("구구단 몇 단을 계산할까?") #'구구단 몇 단을 계산할까?' 출력
user_input=input() #사용자가 입력한 값을 변수 user_input에 할당
print("구구단", user_input, "단을 계산한다.") #몇 단을 계산할지 출력
int_input = int(user_input) #사용자에게 입력받은 단수를 정수형으로 변환
for i in range(1,10):
result = int_input * i #단수에 차례로 1부터 9까지를 곱한 것이 결과값이 됨
print(user_input, "x", i, "=", result) #'사용자 입력값(문자열) X 1~9 = 결과값'을 텍스트로 출력
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[3팀/김경은] 5차시 파이썬 스터디 - 함수 (0) | 2023.04.05 |
---|---|
[2팀/김세연] 5차시 파이썬 스터디 - 함수 (0) | 2023.04.05 |
[3팀/김규리] 5차시 파이썬 스터디 - 함수 (0) | 2023.04.03 |
[3팀/이지현] 5차시 파이썬 스터디 - 함수 (0) | 2023.04.02 |
[1팀/허서원] 4차시 파이썬 스터디 - 반복문 (0) | 2023.03.30 |