[Python] for문

Jeongyun Heo·2020년 12월 15일
0

Python

목록 보기
6/36

점프 투 파이썬 참고: https://wikidocs.net/22

✍️  for문의 기본 구조

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번 학생은 합격입니다.

✍️  continue문 (for문의 처음으로 돌아감)

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 함수

📕  버전별 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

✍️  range를 이용한 구구단 (이중 for문)

for i in range(2, 10):  ➡️ 2부터 9까지 있는 리스트
    for j in range(1, 10):  ➡️ 1부터 9까지 있는 리스트
        print(i*j, end=" ") ➡️ end 써서 한 줄에 계속 나오게 함
    print('') ➡️ 다음 줄로 넘어가게 하기 위함
    
안쪽 for문이 실행이 끝나야 바깥쪽 for문으로 돌아감

✍️  리스트 내포 (List comprehension)

✅   리스트 안에 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]

0개의 댓글