본문 바로가기

Python 기초 배우기/비전공자도 배우는 파이썬 기초

14. 파이썬 제어문: for문, 반복문, range, end

#제어문 #for문 #파이썬for #반복문 #range #end

파이썬 제어문 중 마지막 배울 for문입니다.

while문과 같이 for문도 반복문입니다.

파이썬 제어문의 종류
1. if문 (특정 조건의 만족 여부에 따라 실행)
2. while문 (특정 조건을 만족하는 동안 반복 실행)
3. for문 (특정 횟수만큼 반복 실행)

for문, 반복문

특정 횟수만큼 반복 실행

 

 

시작에 앞서서 같은 반복문인

while문과 for문의 특징을 보겠습니다.

while문

for문

특정 조건을 만족하는 동안 반복 실행

특정 횟수만큼 반복 실행

True / False로 논리적 검사 진행

자료를 순서대로 할당

while (조건문) :

for 변수 in (순회 가능한 자료) :

텍스트로만 보면 이해가 쉽지 않습니다.

실습을 해보면 차이를 느낄 수 있습니다~

아래 그림처럼

for문은 변수 할당된 자료를

한 번씩 순서대로 실행합니다.

모든 변수를 실행했으면 종료됩니다.

for문, 반복문 기본구조

for문을 실습해 보겠습니다.

for 문자열 in "테스트123" :
    print(문자열)
else :
    print("종료합니다.")


리스트 = ["test",1,2,3]
for list in 리스트 :
    print(list)
    
    
##### result #####    
    
테    #문자열의 한글자씩 for문에 할당되며 print로 출력됩니다.
스
트
1
2
3
종료합니다.


test   #리스트 자료형도 동일하게 한 요소 씩 출력됩니다.
1
2
3    

 

튜플1 = (1,2,3)
for tp1 in 튜플1 :
    print(tp1)


튜플2 = [(1,2), (2,3), ("t1","t2")]
for tp2 in 튜플2 :
    print(tp2)
    
    

##### result #####

1    #튜플 자료형도 한 요소 씩 출력됩니다.
2
3


(1, 2)    #리스트 안에 튜플이 있는경우 튜플 형태로 출력됩니다.
(2, 3)
('t1', 't2')

 

위처럼 자료형 안에 자료형이 있는 경우에는

변수 지정한 자료형을 기준으로

내부 요소의 형태 그대로 출력됩니다.

 


튜플2 = [(1,2), (2,3), ("t1","t2")]
for tp2 in 튜플2 :
    print(tp2[0])


for (tp1_1, tp1_2) in 튜플2 :
    print(tp1_1)
    

##### result #####

1    #리스트로 할당된 변수에서 내부요소인 튜플을 인덱싱[0] 한 경우
2
t1


1    #각 튜플을 순서대로 변수 지정한 경우
2
t1

 


for문은 range라는 함수와

함께 많이 사용됩니다.

range 함수는 숫자(정수) 리스트를

자동으로 만들어줍니다.

 

for 변수 in range(시작숫자, 끝숫자)

단, 정수로 입력되며
끝숫자는 변수 할당에 포함되지 않는다.
for num in range(1,6) :  #range(a,b) : a부터 b전까지 정수
    print(num)

for num in range(3) :    #range(b) : 0부터 a전까지 정수
    print(num)

for num in range(1,6,2) :   #range(a,b,c) : a부터 b전까지 c씩 증가하는 정수
    print(num)
    
    

##### result #####

1
2
3
4
5

0
1
2

1
3
5


for문과 range함수를 이용하여

구구단 3단을 만들어 보겠습니다~

 

for multi in range(1,10) :
    third = ("3 * %d = %d" %(multi, 3*multi))
    print(third)
 


##### result #####

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27

 

위 3단 결과를 보면

변수 하나 실행될 때마다 줄이 바뀌면서

출력되는 것을 볼 수 있습니다.


 

줄이 바뀌지 않고

한 줄에 다 나타내는 방법은 없을까요?

print(값 또는 수식, end="원하는 문자열")

 

매개변수라고 불리는

end=" "를 넣어주면 줄바꿈 하지 않고

마지막에 원하는 문자열을 삽입 후

계속해서 출력물을 한 줄에 입력합니다.

구구단 3단에 end 매개변수를 추가해 보겠습니다.

 

for multi in range(1,10) :
    third = ("3 x %s = %s" %(multi, 3*multi))
    print(third, end=" / ")

for multi in range(1,10) :
    third = ("3 x %s = %s" %(multi, 3*multi))
    print(third, end="   ")    #여백으로 두면 여백이 입력됩니다.
    

##### result #####

3 x 1 = 3 / 3 x 2 = 6 / 3 x 3 = 9 / 3 x 4 = 12 / 3 x 5 = 15 / 3 x 6 = 18 / 3 x 7 = 21 / 3 x 8 = 24 / 3 x 9 = 27 /

3 x 1 = 3   3 x 2 = 6   3 x 3 = 9   3 x 4 = 12   3 x 5 = 15   3 x 6 = 18   3 x 7 = 21   3 x 8 = 24   3 x 9 = 27