본문 바로가기

코딩/파이썬

파이썬 - for 문 사용하는 방법

반응형

안녕하세요.

오랜만에 파이썬 문법 포스팅이네요.

 

저는 이론 공부보다는 실제 예제를 풀거나 뭔가를 직접 만들어보면서 학습하는게 효과적이라고 생각하지만

그 과정에서 모르는 부분을 직접 검색하고 학습하면서 그 내용물들을 기록해두고자 합니다.

 

우선은 파이썬에서 정말 자주 쓰이는 for문으로 시작해보겠습니다.

 

1. for문이란?

파이썬에서 for문은 지정된 명령어를 반복 실행해주는 역할을 합니다.

while문도 반복문인데 둘이 비슷하죠?

하지만 그 둘은 구조가 다릅니다.

 

2. for 문의 기본 구조

for 변수 in 리스트:
	명령문1
    명령문2
    ...

for문은 위와 같은 구조로 되어있습니다.

이해가 필요하냐구요?

아뇨 파이썬을 만든 사람이 for문은 이렇게 쓰는거야~ 라며 만든거기 때문에

우리는 이해할 필요 없이 그냥 외워서 써야 합니다.

예제를 하나 살펴보죠

a = ['a','b','c']
for i in a:
	print(i)

위 예제는

  • a, b, c라는 텍스트가 들어있는 리스트인 a를 만들고,
  • a에 들어있는 a, b, c를 순서대로 i라는 변수에 집어넣게 됩니다.
  • 그럼 for문 안에 있는 print()함수가 i에 들어있는 변수를 순서대로 출력해주게 됩니다.

결과값은 아래와 같이 출력됩니다.

a
b
c

for문 안에서 print함수가 사용되면 한번 반복이 끝날때마다 줄바꿈을 해줍니다.

그래서 a b c가 아니라

a

b

c

가 되는 것이죠.

 

3. continue문

for문 안에서 continue 문을 만나면, for문의 처음으로 돌아갑니다.

이게 무슨 소리냐구요?

예제로 보도록 하죠.

picks = [1, 2, 3]
num = 0
for pick in picks:
	num += 1
	if pick == 2:
		continue
	print(num)

위 예제는

  • picks 라는 리스트형 변수에 숫자 1, 2, 3을 넣어줍니다.
  • 그리고 num라는 변수에 0을 대입합니다.
  • 이제 for문을 만들고, picks에 저장된 숫자들을 순서대로 pick이라는 변수에 넣어줍니다.
  • 그리고 for문이 돌아갈때마다 num에 1을 더해줍니다.
  • if문을 실행시켜 만약 pick이라는 변수에 담긴 값이 2라면, for문의 처음으로 돌아가고, 아니라면 변수 num에 담긴 값을 출력합니다.

결과값은 아래와 같이 출력됩니다.

1
3

 

4. for문과 range 함수

range 함수는 특정 범위의 숫자를 자동으로 만들어줍니다.

range문을 하나 실행해 볼까요?

a = list(range(3))
print(a)

위 예제는

  • range함수를 이용하여 0부터 2까지, 3개의 숫자를 생성합니다.
  • 생성된 숫자를 리스트함수를 이용해 리스트 형태로 변환하고, a라는 변수에 대입합니다.

결과값은 아래와 같이 출력됩니다.

[0, 1, 2]

만약 원하는 구간의 숫자를 생성하고 싶다면 콤마를 이용하면 됩니다.

a = list(range(3, 5))
print(a)

 

 

range함수에서 첫번째 칸에는 '원하는 숫자 구간의 시작 값'을,

두번째 칸에는 '원하는 숫자 구간의 마지막 값+1인 값'을 넣어주면 됩니다.

결과값은 아래와 같이 출력됩니다.

[3, 4]

자 그럼 이제 range함수로 생성한 숫자를 for문에 넣어볼게요

for i in range(3):
	print(i)

위 예제는

  • range 함수에 의해 0부터 2까지의 숫자가 생성됩니다.
  • 생성된 숫자를 i라는 변수에 순서대로 대입합니다.
  • for문에 의해 print 함수가 변수 i에 담긴 값을 순서대로 출력합니다.

결과값은 아래와 같이 출력됩니다.

0
1
2

 

5. 구구단 만들기

for문 예제 중 가장 유명한 구구단 예제입니다.

구구단에서 2단은 2를 1~9범위의 숫자와 곱해주는 거죠?

이걸 for문으로 구현하면,

for i in range(1,10):
    num=2*i
    print(num)

위 예제는

  • range 함수로 1부터 9까지의 숫자를 생성합니다.
  • 생성된 숫자를 순서대로 변수 i에 넣어줍니다.
  • for문을 이용해 변수 num에 2와 변수 i의 값을 곱한 값을 넣어줍니다.
  • print함수를 이용해 변수 num의 값을 순서대로 출력합니다.

결과값은 아래와 같이 출력됩니다.

2
4
6
8
10
12
14
16
18

자 2단은 만들었고, 이제 이걸 9단까지 만들려면 어떻게 해야 할까요?

for 문을 두번 쓰면 됩니다.

for j in range(2, 10):
	for i in range(1, 10):
		num = j*i
		print(num)

위 예제는

  • 첫번째 for문에서 range 함수를 이용해 2부터 9까지의 숫자를 생성합니다.
  • 생성된 숫자를 순서대로 변수 j에 대입합니다.
    • 두번째 for문에서 range 함수를 이용해 1부터 9까지의 숫자를 생성합니다.
      • 생성된 숫자를 순서대로 변수 i에 대입합니다.
      • 변수 num에 j와 i를 곱한 값을 대입합니다.
      • print함수를 이용해 변수 num의 값을 출력합니다.
      • 이후 j의 값이 바뀔때마다 같은 과정을 반복합니다.

결과값은 아래와 같이 출력됩니다.

2
4
6
...
63
72
81

여기까지

for문을 간단하게 알아봤습니다.

반응형