[Python] for문

ㅎㅎ·2021년 5월 19일
0

Python

목록 보기
11/27




📌 for문

  • while과 비슷한 반복문
  • for문의 기본구조
for 변수 in 리스트(또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2
    ...

- for문의 다양한 예시

1. 전형적인 for문

test = ["apple", "banana","tomato"]
for i in test:
    print(i)
   
#결과
apple
banana
tomato

➡️ 리스트에 첫번째 요소인 "apple"이 먼저 i 변수에 대입된 후 print(i), 그리고 두번째 요소는 "banana"가 i변수에 대입된 후 print(i), 그리고 마지막 요소까지 이것을 반복한다.

2. 다양한 for문의 사용

test = [(1,2),(3,4),(5,6)]
for (first, last) in test:
    print(first,last)
    
#결과
1 2
3 4
5 6

➡️ test 리스트이 요숏값이 튜플이기 때문에, 각각의 요소가 자동으로 (first,last)변수에 대입된다.

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

➡️ mark는 시험점수 리스트를 의미한다. 그리고 number는 각각 학생들의 번호를 의미한다. 따라서 for문은 리스트의 각 학생의 번호를 하나씩 확인하면서 점수가 60점이상일때는 합격 메세지를, 이하일때는 불합격 메세지를 출력할 것이다.


- for과 countinue

  • while문에서처럼 countinue를 만나면 for문의 처음으로 돌아간다.**
marks = [90, 25, 67, 45, 80]

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

#결과 
1번 학생 축하합니다. 합격입니다. 
3번 학생 축하합니다. 합격입니다. 
5번 학생 축하합니다. 합격입니다. 

➡️ 'mark<60'에서 점수가 60미만일때 countinue를 만나 for문 처음으로 돌아가게 되며, 따라서 60점 이상인 학생만 print문을 실행한다.


- for과 range함수

  • range함수는 for문과 자주 사용하는 함수이다.
>>> a = range(10)
>>> a
range(0, 10) # 0부터 10미만의 숫자를 포함하는 range객체

# 시작과 끝 숫자를 지정할때, 끝숫자는 포함되지 않는다.
# 즉 1 ~ 10 
>>> a = range(1, 11)
>>> a
range(1, 11)

range함수 예시

# 1. 1부터 10까지 더하기
num = 0
for i in range(1,11):
    num = num + i # i 변수에 리스트의 숫자 1부터 10까지 차례로 대입
print(num)

#결과 
55

#2.구구단만들기
for i in range(2,10): # 2단부터 9단까지
    for j in range(1,10):
        print(i*j, end=" ")
    print() #단을 구분하기 위해
    
#결과
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 

📌 리스트 내포(list comprehention)

  • 리스트 안에 for문을 포함하는 리스트 내포 즉, 리스트 컴프리헨션을 사용하면 직관적인 프로그램을 만들 수 있다.
  • [표현식 for 항목 in 반복가능객체 if 조건문]
# a 리스트의 각 값에 3을 곱한 결과를 res 리스트에 담는 예제
a = [1,2,3,4]
res = [] # 빈리스트
for num in a:
    res.append(num*3) #각 리스트 요솟값에 3 곱하기
print(res)

➡️ 위 코드 리스트 내포 사용 후

a = [1,2,3,4]
res = [num * 3 for num in a]
print(res)코드를 입력하세요

#if조건을 사용해 짝수만 출력하기
a = [1,2,3,4]
res = [num * 3 for num in a if num % 2 == 0]
print(res)
  • for문을 2개 이상 사용하는 것도 가능함.
#형태
[표현식 for 항목1 in 반복가능객체1 if 조건문1
        for 항목2 in 반복가능객체2 if 조건문2
        ...
        for 항목n in 반복가능객체n if 조건문n]
        
        
#for문 2개이상 사용한 구구단 코드
res = [x*y for x in range(2,10)
	for y in range(1,10)]
print(res)

0개의 댓글