8.1 for 루프
조건에 따라 명령어 그룹을 실행할 수 있다는 것은 멋진 일이야. 그런데 어떤 동작을 100번 실행하고 싶다면? 어떻게 해야 하지?
Python 언어에는 이럴 때 사용하는 루프가 있어. 우리 작업에 딱 맞는 게 바로 for 루프야. for 루프의 일반적인 모양은 다음과 같아:
for 변수 in 값_리스트:
명령어1
명령어1
명령어N
여기서 값_리스트는 값의 집합이야: 리스트, 문자열, 사전 등(나중에 설명할게).
변수는 값_리스트의 각 값을 차례로 받아오고, 그 값에 대해 블록의 명령어가 실행돼.
예제:
예제 | 설명 |
---|---|
|
1. 변수 fruit에 "apple"이 할당되고 명령어 print(fruit )가 실행돼. 2. 변수 fruit에 "banana"이 할당되고 명령어 print(fruit )가 실행돼. 3. 변수 fruit에 "cherry"이 할당되고 명령어 print(fruit )가 실행돼. |
이렇게 루프가 작동해:
in
다음에 있는 리스트에 값이 10개 있다면, 블록이 10번 실행될 거야.
값_리스트의 각 값에 대해 두 가지가 발생해:
-
루프의 변수(단어
for
뒤에 지정된 것)에게 리스트의 다음 값이 할당돼. - 그 다음 명령어 블록이 실행돼.
또 다른 예제:
예제 | 설명 |
---|---|
|
루프는 다음 숫자들을 화면에 출력해:
1 2 3 4 5 6 7 8 9 10 |
8.2 범위 설정 — range
마지막 예제에서 봤듯이, 10개의 숫자를 화면에 출력하는 것은 간단해. 하지만 루프를 100번 혹은 1000번 실행하고 싶다면?
당연히 이를 해결할 방법이 있어. Python 언어에는 숫자 시퀀스를 생성하는 특별한 함수 range()
가 있어, for 루프와 결합하여 반복 작업을 제어하는 강력한 도구로 만들어줘.
함수 range()
는 전달된 인수의 수에 따라 여러 가지 방법으로 사용할 수 있어.
기본 사용법 range()
:
한 개의 인수: range(n)
는 0부터 n-1까지의 시퀀스를 생성해. 이는 특정 횟수만큼 동작을 실행해야 할 때 유용해.
for i in range(5):
print(i) # 0부터 4까지의 숫자를 출력할 거야
두 개의 인수: range(start, stop)
는 start
부터 stop-1
까지의 시퀀스를 생성해. 특정 숫자부터 반복을 시작할 때 유용해.
for i in range(1, 6):
print(i) # 1부터 5까지의 숫자를 출력할 거야
세 개의 인수: range(start, stop, step)
는 시퀀스에서 숫자 간의 간격을 결정하는 세 번째 인수 step
을 추가해.
for i in range(0, 10, 2):
print(i) # 0부터 8까지의 짝수를 출력해
역방향 루프: range()
는 숫자를 역순으로 생성할 수 있어서 역방향 반복을 수행할 수 있어.
for i in range(10, 0, -1):
print(i) # 10부터 1까지의 숫자를 출력해
range()
함수는 for
루프와 결합되어 Python의 반복을 제어하는 유연한 도구를 제공해. 이를 이해하면 더 효율적이고 이해하기 쉬운 루프를 만들 수 있어, 모든 프로그램의 필수적인 부분이지.
8.3 리스트를 통한 루프
만약 다양한 값에 대해 동작 그룹을 실행하고 싶다면, range()
함수는 적합하지 않아. 언제든지 대괄호를 사용하여 이러한 값을 리스트로 묶을 수 있어. 이런 작업의 일반적인 형태는 다음과 같아:
for 변수 in [val1, val2, …, valN]:
명령어1
명령어1
명령어N
값을 콤마로 나열하면 루프가 각 값에 대해 실행되고 변수는 차례로 각 값을 받아.
예제 | 설명 |
---|---|
|
루프는 다음 문자열들을 화면에 출력해:
apple banana cherry |
리스트에 숫자를 지정할 수 있어, in
뒤의 루프에 바로:
예제 | 설명 |
---|---|
|
루프는 다음 숫자들을 화면에 출력해:
0.99 2.75 0.25 |
리스트에는 어느 타입의 객체든 나열할 수 있어:
예제 | 설명 |
---|---|
|
루프는 다음 문자열들을 화면에 출력해:
0.99 apple -1 True |
GO TO FULL VERSION