[Python 기초] 10. for문

김나연·2021년 8월 6일
0

Python

목록 보기
10/18
post-thumbnail

for문

while문과 비슷한 반복문인 for문은 매우 유용하고 문장 구조가 한눈에 들어온다는 장점이 있다.

for문의 기본 구조

for 변수 i 리스트(또는 튜플, 문자열):
	수행할 문장1
	수행할 문장2
	...

리스트나 튜플, 문자열의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 "수행할 문장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)문장을 수행한다. 다음 요소가 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) 변수에 대입되어 (first + last) 계산이 되어 출력된다.

3. for문의 응용

score = [90, 25, 67, 45, 80]

number = 0
for i in score:
	number += 1
    if score >= 60:
	print("%d번 학생은 합격입니다." %number)
    else:
    	print("%d번 학생은 불합격입니다." %number)

"5명의 학생이 시험을 보았는데 시험 점수가 60점이 넘으면 합격이고 그렇지 않으면 불합격이다. 합격인지 불합격인지 결과를 보여 주시오."

각각의 학생에게 번호를 붙여 주기 위해 number 변수를 사용하였다. 점수 리스트에서 차례로 점수를 꺼내어 i라는 변수에 대입하고 for문 안에 문장들을 수행한다. for문이 한번씩 수행될 때마다 number는 1씩 증가한다.

if else문으로 점수가 60점 이상이면 학생의 number를 출력하고 합격이라는 메세지가 출력된다. 60점 이상이 아니라면 불합격이라는 메세지를 출력한다.

for문과 continue

while문에서 쓰인 continue문을 for문에서도 사용할 수 있다. 즉 for문 안의 문장을 수행하는 동중에 continue문을 만나면 for문의 처음으로 돌아가게 된다.

score = [90, 25, 67, 45, 80]

number = 0
for i in score:
	number += 1
	if i < 60:
		continue
	print("%d번 학생 축하합니다." %number)

점수가 60점 이해인 학생일 경우에는 i < 60 이 참이 되어 continue문이 수행된다. 따라서 축하 메세지를 출력하는 print문을 수행하지 않고 for문의 처음으로 돌아간다.

for문과 사용하는 range 함수

for문은 숫자 리스트를 자동으로 만들어 주는 range 함수와 함께 사용하는 경우가 많다.

>>> a = range(10)
>>> a
range(0, 10)

range(10) 은 0부터 10미만의 숫자를 포함하는 range 객체를 만들어 준다.

>>> score = [90, 25, 67, 45, 80]
for i in range(len(score)):
	if score[i] < 60:
		continue
	print("%d번 학생 축하합니다. 합격입니다." %(i+1))

위의 예시에서 len 함수는 리스트 안의 요소 개수를 돌려주는 함수이다. 따라서 len(score)는 5가 될 것이고, range(len(score))range(5)가 된다. i변수에는 0부터 4까지의 숫자가 차례로 대입될 것이다.

리스트 내포 사용하기

>>> a = [1, 2, 3, 4]
>>> result = []
>>> for num in a:
...	result.append(num*3)
...
>>>print(result)
[3, 6, 9, 12]

위 예제는 a 리스트의 각 항목에 3을 곱한 결과를 result 리스트에 담는 예제이다.

이 예제에 리스트 내포를 사용하면 다음과 같이 간단히 코드를 짤 수 있다.

>>> a = [1, 2, 3, 4]
>>> result = [num * 3 for num in a]
>>> print(result)
[3, 6, 9, 12]

만약 위의 예시 속 리스트 [1, 2, 3, 4]에서 짝수에만 3을 곱하도록 조건을 걸고 싶다면 다음과 같이 할 수 있다.

>>> a = [1, 2, 3, 4]
>>> result = [num * 3 for num in a if num % 2 == 0]
>>> print(result)
[6, 12]
profile
결국 무엇이든 해내는 사람 '김나연'입니다. 😎

0개의 댓글