Python/Do it 점프 투 파이썬
파이썬 프로그래밍 기초 - for문
goyoungii
2025. 4. 1. 10:25
for문
for문의 기본 구조
for 변수 in 리스트(또는 튜플, 문자열):
수행할_문장1
수행할_문장2
...
for문 이해하기
1. 전형적인 for문
>>> test_list = ['one', 'two', 'three']
>>> for i in test_list:
... print(i)
...
###
one
two
three
###
['one', 'two', 'three'] 리스트의 첫 번째 요소인 'one'이 먼저 i 변수에 대입된 후 print(i) 문장을 수행한다.
다음 요소도 순차적으로 대입되며 마지막 요소까지 이것을 반복한다.
2. 다양한 for문의 사용
>>> a = [(1,2), (3,4), (5,6)]
>>> for (first, last) in a:
... print(first + last)
...
###
3
7
11
###
a 리스트의 요솟값이 튜플이기 때문에 각각의 요소가 자동으로 (first, last) 변수에 대입된다.
for문의 응용
>>> marks = [90,25,67,45,80]
>>>
>>> number = 0
>>> for mark in marks:
... number = number + 1
... if mark >= 60:
... print("%d번 학생은 합격입니다." % number)
... else:
... print("%d번 학생은 불합격입니다." % number)
...
###
1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 불합격입니다.
5번 학생은 합격입니다.
###
for문과 함께 자주 사용하는 range 함수
range 함수
range(시작_숫자, 끝_숫자)
끝 숫자는 포함되지 않는다.
예제 1)
>>> a = range(10)
>>> a
range(0, 10) # 0,1,2,3,4,5,6,7,8,9
예제2) for와 range 함수를 사용하여 1 ~ 10까지 더해보자
>>> add = 0
>>> for i in range(1,11):
... add = add + i # 1부터 더하는 값을 add에 계속 누적한다. add += i와 같다.
...
>>> print(add)
55
예제 3)
>>> marks = [90,25,67,45,80]
>>> for number in range(len(marks)):
... if marks[number] < 60:
... continue
... print("%d번째 학생 축하합니다. 합격입니다." % (number+1))
...
###
1번째 학생 축하합니다. 합격입니다.
3번째 학생 축하합니다. 합격입니다.
5번째 학생 축하합니다. 합격입니다.
###
예제 4) for와 range를 이용한 구구단
>>> for dan in range(2,10):
... print("%d단" % dan)
... for num in range(1,10):
... print(dan*num, end = " ") # end 파라미터를 사용해 자동 줄바꿈 대신 " " 추가
... print('')
...
###
2단
2 4 6 8 10 12 14 16 18
3단
3 6 9 12 15 18 21 24 27
4단
4 8 12 16 20 24 28 32 36
5단
5 10 15 20 25 30 35 40 45
6단
6 12 18 24 30 36 42 48 54
7단
7 14 21 28 35 42 49 56 63
8단
8 16 24 32 40 48 56 64 72
9단
9 18 27 36 45 54 63 72 81
###
print문의 end 매개변수에는 줄바꿈 문자(\n)가 기본으로 설정되어 있다.
리스트 컴프리헨션 사용하기
리스트 안에 for문을 포함하는 리스트 컴프리헨션을 사용하면 좀 더 편리하고 직관적인 프로그램을 만들 수 있다.
리스트 컴프리헨션 문법
[표현식 for 항목 in 반복_가능_객체 if 조건문]
# 조건문 2개 이상도 가능
[표현식 for 항목 in 반복_가능_객체 if 조건문1
for 항목 in 반복_가능_객체 if 조건문2
...
for 항목 in 반복_가능_객체 if 조건문n]
* 리스트 컴프리헨션 사용 전
: a 리스트의 각 항목에 3 곱하기
>>> a = [1,2,3,4]
>>> result = []
>>> for num in a:
... result.append(num*3)
...
>>> print(result)
[3, 6, 9, 12]
* 리스트 컴프리헨션 사용
>>> a = [1,2,3,4]
>>> result = [num*3 for num in a]
>>> print(result)
[3, 6, 9, 12]
* 조건이 있는 리스트 컴프리헨션
: [1,2,3,4] 중에 짝수에만 3을 곱하여 담고 싶다면 리스트 컴프리헨션 안에 'if 조건문'을 사용하면 된다.
>>> a = [1,2,3,4]
>>> result = [num*3 for num in a if num%2 == 0]
>>> print(result)
[6, 12]
예제 1) 구구단의 모든 결과를 리스트 컴프리헨션을 사용해 리스트에 담기
>>> result = [x*y for x in range(2,10) for y in range(1,10)]
>>> print(result)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]