for 변수 in 문자열(or 튜플 or 리스트):
반복적으로 실행하고자 하는 명령문
요소를 차례대로 꺼내어 명령문을 실행한다.
→ 시퀀스의 길이만큼 반복한다.
반복 횟수가 정해져 있을 때 자주 사용한다.
for 문에서 선언된 변수는 for 문 내부에서만 사용할 수 있다.
for
와 range
사용하기for 변수 in range(횟수): 반복할 코드
range
에서 in
으로 숫자를 하나씩 꺼내서 코드를 실행한다.
반복할 코드로 순환하는 것을 루프라고 한다.
변수 i를 루프 인덱스라 부른다. ( i, j, k )
내부에서 i에 다른 값을 할당해도 결과에 영향을 주지 않는다.
for 변수 in range(시작, 끝, 증가폭):
끝나는 숫자는 포함되지 않는다.
음수 증가폭으로 숫자 감소시키기
>>> for i in range(10, 0, -1): # 10에서 1까지 1씩 감소
... print('Hello, world!', i)
...
Hello, world! 10
Hello, world! 9
... (생략)
Hello, world! 2
Hello, world! 1
# 0은 포함되지 않고 1까지만 감소한다.
reversed
로 숫자 감소시키기
for 변수 in reversed(range(시작, 끝, 증가폭))
# reversed를 사용하여 숫자의 순서를 반대로 뒤집기
>>> for i in reversed(range(10)):
... print('Hello, world!', i)
...
Hello, world! 9
Hello, world! 8
... (생략)
Hello, world! 1
Hello, world! 0
# 9부터 0까지 10번 반복된다.
count = int(input('반복할 횟수: '))
for i in range(count):
print('Hello, world!')
range
대신 리스트, 튜플, 문자열을 넣을 수 있다.
→ 요소를 꺼내면서 반복한다.
# 문자열 요소를 꺼내서 반복하기
>>> for letter in 'Python':
... print(letter, end=' ') # end 값을 1칸 공백으로 지정
...
P y t h o n
# reversed로 뒤집어서 출력하기
>>> for letter in reversed('Python'):
... print(letter, end=' ')
...
n o h t y P
# 구구단 전체 출력하기
for col in range(2, 10):
for row in range(1, 10):
print (col, "x", row, "=", col * row)
# 입력받은 숫자의 구구단 출력하기
i = int(input())
for j in range(1, 10):
print(i, '*', j , '=', i * j)
# print의 콤마는 기본적으로 sep=' ' 이다
while
반복문초기식
while 조건식:
반복할 코드
변화식
변화식을 생략하면 무한 루프가 된다.
반복 횟수가 정해져 있지 않을 때 자주 사용한다.
입력한 횟수대로 반복하기
# 초깃값이 0 일때
count = int(input('반복할 횟수를 입력하세요: '))
i = 0
while i < count: # i가 count보다 작을 때 반복
print('Hello, world!', i)
i += 1
# 초깃값을 입력 받을때
count = int(input('반복할 횟수를 입력하세요: '))
while count > 0: # count가 0보다 클 때 반복
print('Hello, world!', count)
count -= 1 # count를 1씩 감소시킴
random
모듈로 난수 생성하기import random
→ 모듈 가져오기random.random()
→ 실수 출력random.randint(정수a, 정수b)
→ a ~ b 사이 정수 난수 출력# 3이 나올때까지 주사위 던지기
import random # random 모듈을 가져옴
i = 0
while i != 3: # 3이 아닐 때 계속 반복
i = random.randint(1, 6) # randint를 사용하여 1과 6 사이의 난수를 생성
print(i)
random.choice(시퀀스 객체)
→ 객체의 요소를 무작위로 선택# dice 리스트에서 랜덤으로 선택하기
>>> dice = [1, 2, 3, 4, 5, 6]
>>> random.choice(dice)
1
>>> random.choice(dice)
4
>>> random.choice(dice)
3
# 리스트, 튜플, range, 문자열에 적용 가능
True
를 지정하거나 True로 취급하는 값
을 사용Ctrl + C
로 끝낼 수 있다.# 사용할때마다 잔액 출력하기
balance = int(input()) # 금액을 입력
while balance >= 1350: # 요금은 1350원
balance -= 1350 # 최초금액 출력안하기
print(balance) # 마지막 잔액 출력을 위해 마지막에 위치
break
, continue
로 반복문 제어하기break
로 반복문 끝내기for
에서 break
for i in range(10000): # 0부터 9999까지 반복
print(i)
if i == 100: # i가 100일 때
break # 반복문을 끝냄. for의 제어흐름을 벗어남
while
에서 break
i = 0
while True: # 무한 루프
print(i)
i += 1 # i를 1씩 증가시킴
if i == 100: # i가 100일 때
break # 반복문을 끝냄. while의 제어흐름을 벗어남
continue
로 건너뛰기for
에서 continue
# 0~99까지 반복하면서 홀수만 출력하기
for i in range(100): # 0부터 99까지 증가하면서 100번 반복
if i % 2 == 0: # i를 2로 나누었을 때 나머지가 0면 짝수
continue # 짝수일땐 아래 코드를 실행하지 않고 건너뜀
print(i)
while
에서 continue
# 0~99까지 반복하면서 홀수만 출력하기
i = 0
while i < 100: # i가 100보다 작을 때 반복. 0부터 99까지 증가하면서 100번 반복
i += 1 # i를 1씩 증가시킴
if i % 2 == 0: # i를 2로 나누었을 때 나머지가 0이면 짝수
continue # 짝수일땐 아래 코드를 실행하지 않고 건너뜀
print(i)
# 무한루프일땐 홀수만 계속 출력되고 멈추지 않는다.
# 입력한 숫자만큼 출력하기
count = int(input('반복할 횟수를 입력하세요: '))
i = 0
while True: # 무한 루프
print(i)
i += 1
if i == count: # i가 입력받은 값과 같을 때
break # 반복문을 끝냄
# 3 입력시 0 1 2 세번 출력
# 입력한 숫자까지 홀수 출력하기
count = int(input('반복할 횟수를 입력하세요: '))
for i in range(count + 1): # 0부터 증가하면서 count까지 반복(count + 1)
if i % 2 == 0: # i를 2로 나누었을 때 나머지가 0이면 짝수
continue # 아래 코드를 실행하지 않고 건너뜀
print(i)
# 7 입력시 1 3 5 7 네번 출력
start, stop = map(int, input().split())
i = start
while True:
if i % 10 == 3: # 3으로 끝나는 숫자는 continue로 출력 안하기
i += 1
continue
if i > stop: # stop 숫자까지 출력해야함
break
print(i, end=' ')
i += 1
# 입력 1 20
# 결과 1 2 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20