for문의 형태

for 변수 in [리스트 값1, 리스트 값2, 리스트 값3 .....]
    실행문1
    실행문2
      .
      .
      .
for 변수 in [튜플 값1, 튜플 값2, 튜플 값3 .....]
    실행문1
    실행문2
      .
      .
      .
for 변수 in [문자열 값1, 문자열 값2, 문자열 값3 .....]
    실행문1
    실행문2
      .
      .
      .

for문을 사용하면 리스트 또는 튜플과 문자열을 변수에 순서대로 대입할 수 있다.

 

 

 

예문

a = [1, 2, 3, 4, 5]

for i in a :                # 변수 i에 a리스트값을 순서대로 하나씩 대입
    print(i)                # 현재 들어있는 값을 출력 후 다시 2번째 값으로 반복..3반복..4반복..5반복..
    
# 결과
1
2
3
4
5

for문 안에서 사용할 변수를 선언 후 in a (리스트[1, 2, 3, 4, 5])를 해주니

리스트의 값을 차례대로 출력하는 프로그램이 되었다. 재미있는 반복문이다.

 

 

 

이 방법을 사용해 1부터 10까지 모든 수를 더하는 프로그램을 만들어 보자

a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]    # 1부터 10까지 있는 리스트 a
addnumber = 0                          # 더한 값을 넣어줄 변수

for i in a :                           # 변수 i에 리스트a를 순서대로 대입
    addnumber = addnumber + i          # 변수 addnumber에 리스트a를 더함

print(addnumber)


# 결과
55

변수 i 에 리스트 a 값을 차례차례 받아와

addnumber에 차곡차곡 더해주면

addnumber는 결과적으로 1부터 10까지 모든 수를 더한 값이 된다.

리스트 a에서 1부터 10까지 일일이 써넣지 않아도 되는 방법이 있다.

 

 

 

range(~~이상부터, ~~미만까지)

a = range(1,11)
for i in a :
    print(i)
    
# 결과
1
2
3
4
5
6
7
8
9
10

만약 1부터 10까지 있는 리스트를 만들고 싶을 때 범위 함수인 range를 이용해 시간을 줄일 수 있다.

range(시작번호, 끝번호 + 1) 괄호 안에 첫 번째로 오는 숫자부터 시작하여 두 번째로 오는 숫자 미만까지

자동으로 리스트를 만들어 주는데 쉽게 생각해서 끝낼 숫자에 +1을 해주면 된다.

 

 

이를 이용하여 1부터 50까지 홀수, 짝수를 구분하는 프로그램을 만들어 보자

a = range(1,51)                            # 1부터 50까지 가진 리스트 a
for i in a :                               # 리스트 a를 변수 i에 차례로 대입
    if i % 2 == 0:                         # 만약 i를 2로 나눴을때 나머지가 0이면
        print("숫자 %d는 짝수입니다." % i)   # 짝수
    else:                                  # 아니면
        print("숫자 %d는 홀수입니다." % i)   # 홀수
        
# 결과
숫자 1는 홀수입니다.
숫자 2는 짝수입니다.
숫자 3는 홀수입니다.
숫자 4는 짝수입니다.
숫자 5는 홀수입니다.
숫자 6는 짝수입니다.
숫자 7는 홀수입니다.
숫자 8는 짝수입니다.
숫자 9는 홀수입니다.
숫자 10는 짝수입니다.
          .
          .
          .
          .
          .

결과 중에 짝수나 홀수중 한 가지만 구하고 싶을 때 사용하는 것이 또 있다.

 

 

 

continue, break

a = range(1,51)
for i in a :
    if i % 2 == 1: continue               # 만약 i를 2로나눠서 나머지가 1이 나오면 반복문 처음으로 돌아감
    print("숫자 %d는 짝수입니다." % i)
    
# 결과
숫자 2는 짝수입니다.
숫자 4는 짝수입니다.
숫자 6는 짝수입니다.
        .
        .
        .
        
    
a = range(1,51)
for i in a :
    if i % 2 == 0: continue            # 만약 i를 2로나누었을 때 나누어 떨어지면 for문 처음으로 돌아감
    print("숫자 %d는 홀수입니다." % i)
    
 # 결과
숫자 1는 홀수입니다.
숫자 3는 홀수입니다.
숫자 5는 홀수입니다.
숫자 7는 홀수입니다.
숫자 9는 홀수입니다.
         .
         .
         .
         

while문에서 사용했던것과 마찬가지로 continue는 조건을 만족하면 반복문의 처음으로 돌아간다.

덕분에 아래 print문을 지나치지 않음으로 한가지 숫자만 걸러 낼 수 있다.

 

 

 

for문으로 구구단 하기

구구단은 결국 아래의 모양의 반복과 같다.

숫자 1(i1)

X

숫자 2 (i2)

i1에는 1번숫자, i2에는 2번숫자를 차례로 대입하면 파이썬에게 구구단을 시켜 볼 수 있다.

firstnumber = range(2,11)                # 구구단 단수 (2단부터 10단까지)
secondnumber = range(1,11)               # 곱해줄 숫자

for i1 in firstnumber :               
    for i2 in secondnumber :
        print( i1 * i2 , end = " ")      # end = " "로 결과값이 다음줄로 넘어가지 않고 한칸 띄우고 출력됨
    print(' ')                           # 두번째 for문 반복이 끝나면 공백을 출력함으로써 줄바꿈

# 결과
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100

먼저 i1을 반복하는 for은 첫 숫자 2를 가져오고

이 속에서 i2를 반복하는 for은 1,2,3 ....순서대로 가져오며 반복한다. 이게 끝나면 다시 i1를 반복하는 문장이 반복을 시작함으로 단수에 맞춰 구구단을 시키는것이 가능하게 된다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기