점프 투 파이썬 참고: https://wikidocs.net/22
for 변수 in 리스트, 튜플, 문자열
수행할 문장1
수행할 문장2
...
리스트나 튜플, 문자열의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되어 "수행할 문장1", "수행할 문장2" 등이 수행된다.
반복 횟수가 정해져 있을 때 주로 사용
test_list = ['one', 'two', 'three']
for i in test_list:
print(i)
👉
one
two
three
처음부터 마지막 요소까지 반복하고 종료됨
a = [(1, 2), (3, 4), (5, 6)]
for (first, last) in a:
print(first)
print(last)
👉
1
2
3
4
5
6
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번 학생은 합격입니다.
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number + 1
if mark < 60: ➡️ continue 붙여서 한 줄로 써도 됨
continue ➡️ 아래로 안 내려가고 for문 처음으로 돌아감
print("%d번 학생 축하합니다. 합격입니다." % number)
👉
1번 학생 축하합니다. 합격입니다.
3번 학생 축하합니다. 합격입니다.
5번 학생 축하합니다. 합격입니다.
if mark < 60: ➡️ if mark < 60: continue
continue
한 줄로 작성해도 됨
📕 버전별 range의 차이점
파이썬 2.7에서는 range를 사용하면 실제로 연속된 숫자가 들어있는 리스트를 만들어내지만
파이썬 3에서는 range 객체(반복 가능한 객체)를 만들어낸다.
파이썬 3에서는 range가 객체를 생성하는 방식으로 바뀌었다.
반복가능(iterable)
for문과 자주 사용함
range(시작 숫자(이상), 끝 숫자(미만), step)
➡️ 시작 숫자, step 생략 가능
range(1, 11) 👉 [1,2,3,4,5,6,7,8,9,10]
이상 미만
🔹 1부터 10까지의 합 구하기 🔹
sum = 0
for i in range(1, 11):
sum = sum + i
print(sum)
👉 55
for i in range(2, 10): ➡️ 2부터 9까지 있는 리스트
for j in range(1, 10): ➡️ 1부터 9까지 있는 리스트
print(i*j, end=" ") ➡️ end 써서 한 줄에 계속 나오게 함
print('') ➡️ 다음 줄로 넘어가게 하기 위함
안쪽 for문이 실행이 끝나야 바깥쪽 for문으로 돌아감
✅ 리스트 안에 for문 쓰기
result = [num * 3 for num in a]
👉 a 리스트의 각 항목에 3을 곱한 결과를 result에 담아라
뒤에 조건문 추가할 수 있음
조건문 if num % 2 == 0 추가
result = [num * 3 for num in a if num % 2 == 0]
👉 num이 짝수인 경우에만 3을 곱해서 result에 담아라
추가하고 싶은 걸 맨 앞에 쓰고 ➡️ num * 3
✅ 리스트 안에 이중 for문 쓰기
🔹 위에서 했던 구구단 🔹
result = [x * y for x in range(2, 10) for y in range(1, 10)]
for문 사이에 콤마(,) 입력 ❌
🔸 학급 평균 점수 구하기 🔸
a = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
b = 0
for i in a:
b = b + i
print(b/len(a))
👉 79.0
🔸 리스트 중에서 홀수에만 2를 곱하여 저장하기 🔸
numbers = [1, 2, 3, 4, 5]
result = [i * 2 for i in numbers if i % 2 == 1]
print(result)
👉 [2, 6, 10]