Programming

Python 기초 문법 제어문 - 반복문

IT오이시이 2023. 10. 13. 05:11
728x90

 

Basic Python  (파이썬기초문법) 제어문 - 반복문

프로그래밍은 특정 목적을 달성하기 위해 설계된 알고리즘(algorithm)을 프로그래밍 언어를 사용하여 구체적인 프로그램으로 작성하는 과정입니다.

프로그래밍을 위한 프로그램(개발) 언어들은 데이터 처리를 위해 표준화된 문법을 제공합니다.  기본적인 특성으로 입력과 출력을 처리하는 과정에서 데이터를 처리하기 위해 진행 과정을 제어(분기 처리)하고 반복하여 데이터를 원하는 방향으로 가공하는 것입니다.

대량의 데이터를 반복적으로 처리하기 위해서는  "For문", "While 문", "Range문" 과 같은 반복문을 가장 많이 사용하게됩니다.  각각의 사용 방법과 특성을 알아 보도록 하겠습니다.

1. For 반복문

for문장은 같은 문장을 반복하여 처리하는데 효과적입니다.  시퀀스(리스트, 튜플, 문자열 등)와 같은 데이터 배열의 원소를 반복하여 처리하는 경우 효과적입니다. 주어진 시퀀스(데이터/원소 배열)의 크기가 유한하고 순서를 고려하여, 동일한 데이터 형태를  반복 처리를 할 수 있는 문장입니다.

   1) 동일한 형태의 원소 배열 - 시퀀스(리스트, 튜플, 문자열 등)
   2) 데이터 크기(사이즈)가 유한함 
   3) 순서대로 처리 반복

 

for  변수  in 시퀀스:
    # 반복해서 실행할 코드

 

list = [a,b,c,d,... N]

for x in list:
     <<수행할 내용1>>
     if x == <<조건>>:
        <<수행할 내용2>
     else :
        <<수행할 내용3>
     
        

# 주의 사항 
# : list에 입력된 원소의 순서대로 처리됨
# : list의 원소수 만큼 반복하고 종료

 

1.1 for를 이용한 리스트(list) 처리

- 리스트 변수와 같은 배열을 처리하는데 for문은 효과적입니다.

my_sum = 0
nums = [1, 2, 3]
for i in nums:
  my_sum = my_sum + i

print(my_sum) #6

 

1.2. Range()를 이용한 지정된 반복 횟수 처리

  rage() 는  연속적인 숫자 시퀀스를 만들어주는 함수입니다. 반복할 범위와 순서를 미리 알고 있는 경우 사용합니다.

  예1) range(a, b)   a~ b 미만까지의 정수 시퀀스를 만들어냅니다.  [a, a+1, .... b-1]

  예2) range(n) u 번의 반복할 횟수를 정할 때 :  range(n) 는  0 ~ n 미만의 정수 시퀀스를 만들어줌 [ 0, 1, 2, ...., n-1]

Range(N)을 이용한 지정된 횟수 만큼 반복처리

count = 0
for i in range(10):
    count = count + 1
print (count) #10

 

# 구구단 
v1 = 1
v2 = 10
for a in range(v1,v2):
  for b in range(1,v2):
      print ( a, "*", b, "=", a * b )

 

 

2. While

 반복의 횟수를 알수 없고 특정 조건시 반복을 종료 가능한 경우 사용되는 반복문입니다. 입력되는 데이터의 순서와 상관 없이 특정 조건에 대한 판단을 통해 반복을 종료할 수 있습니다. 반드시 종료 조건이 있어야 종료가 되므로 반복에서 벗어나는 조건을 지정하지 않으면 무한 반복을 수행하게 되므로, 각 별한 주의가 필요합니다. 

<<조건식이 True이면 반복을 수행하는 구조>>

while 조건:
    # 반복해서 실행할 코드

 

while 조건1:
     <<수행할 내용1>>
     
     if 조건2:
        <<수행할 내용2>>
        break:
        
<조건이 False의 경우 빠져나옴>

# 주의 사항 : 무한 반복이 되지 않도록 사전 빠져나올 조건을 정의

 

 

3. While과 for 문장 사용법 비교

for while
for i in range(0, 20):
    if i == 10:
        print( i, "= 10입니다")
        break
    print(i)
print( i, " 번 실행하고 종료")
i = 1
while True: 
    print(i)
    if i == 10:
        print( 1, "= 10 입니다.")
        break
    i = i + 1
print( i, " 번 실행하고 종료")
for 문에 정의된 리스트 크기 만큼 반복 수행
  - range(n) : [0, 1, 2 ... N-1] 의 리스트와 같음
반복을 종료하는 조건을 반드시 명시하여야 함
반복의 횟수는 알수 없음

 

[for 문과 while 문의 사용 예시]

키보드로 리스트 값을 입력 받아 list형 변수에 저장하고  for 문을 사용하여 반복하는 방법입니다.

lst1 = []
while True:
    v1 = int(input())
    if v1 == 0:
        break;
    lst1.append(v1)

sum = 0
for i in lst1:
    print (i)
    sum = sum + i
avg = sum / len(lst1)

print (avg)

 

키보드로 입력 받은 값을 반복하기 위해 입력 받은 리스트의 크기 만큼 반복하기 위해서 len(list) 와 반복 조건을 리스트 크기로 정했습니다. 그리고 중요한 것은 반복 하면서 조건에 비교할 변수 i = i + 1 과 같이 입력을 해두어야 합니다.

lst1 = []
while True:
    v1 = int(input())
    if v1 == 0:
        break;
    lst1.append(v1)

sum = 0
i = 0
cnt = len(lst1)
while i < cnt:
    sum = sum + lst1[i]
    i = i + 1

avg = sum / len(lst1)

print (avg)
728x90
반응형