[Python] 제어문-반복

개린이·2023년 9월 14일
0

Python

목록 보기
16/20
post-thumbnail

반복문

반복문은 동일한 작업을 여러 번 실행하기 위해 사용되는 제어 구조이다. 주로 for 문과 while 문이 사용되며, 각각의 반복문은 다른 상황에 적합한 방식으로 사용된다.

while 문

while 문은 특정 조건이 참인 동안 반복적으로 코드 블록을 실행하는 제어 구조이며. while 문은 주어진 조건이 참인 동안 반복적으로 코드를 실행하며, 조건이 거짓이 되면 반복을 멈춘다.

while 조건:
    # 조건이 참인 동안 실행될 코드

조건은 평가 결과가 참(True) 또는 거짓(False)이 될 수 있는 표현식입니다. 조건이 참일 때 코드 블록이 실행되며, 코드 블록이 실행된 후에 다시 조건을 검사합니다. 조건이 여전히 참이라면 코드 블록을 다시 실행하고, 이 과정을 조건이 거짓이 될 때까지 반복합니다.

while은 반복횟수를 확실하게 알 수 없을때 주로 사용한다.

while문 사용 시 주의 사항

  • 무한 루프
    만약 while 문의 조건이 항상 참이라면 코드가 무한 루프에 빠질 수 있습니다. 프로그램이 의도대로 종료되지 않는 상황을 방지하기 위해 조건을 제대로 설정해야 합니다.

  • 조건 변경
    while 문 내에서 조건을 변경해야 루프가 종료되는 경우도 있습니다. 그렇지 않으면 무한 루프에 빠질 수 있습니다.

  • 끝 조건
    반복이 더 이상 필요하지 않을 때 while 문을 종료하는 조건을 명확하게 설정해야 합니다.

  • 적절한 초기화
    반복 변수나 조건을 사용하기 전에 적절하게 초기화해야 합니다.

🖥️예제

i = 1

while i <= 5:
    print('Hello Python')
    i += 1

🖥️무한루프 예제

i = 1

while i <= 5:
    print('Hello Python') #무한 루프

i가 계속 1이기때문에 조건식에 맞지 않아 무한루프에 빠진다.

🖥️while문 응용예제

# 1부터 10까지의 총합
i = 1
sum = 0

while i <= 10:
    sum += i #sum = sum + i
    # 0 += 1 -> 1
    # 1 += 2 -> 3
    # 3 += 3 -> 6
    # 6 += 4 -> 10
    # 10 += 5 -> 15
    # 15 += 6 -> 21
    # 21 += 7 -> 28
    # 28 += 8 -> 36
    # 36 += 9 -> 45
    # 45 += 10 -> 55
    i += 1

print(f'1부터 10까지의 합 : {sum}')

# 1부터 100까지의 짝수의 합

i = 1
sum = 0

while i <= 100:
    if i % 2 == 0:
        sum += i
    i += 1

print(f'1부터 100까지의 짝수의 합 {sum}')

# 원하는 구구단을 입력받아 해당 단의 구구단을 출력

dan = int(input('원하는 단을 입력해주세요 '))
i = 1
sum = 0
print(f'{dan}단')

while i <= 9:
    sum = dan * i
    print(f'{dan} x {i} = {sum}')
    i += 1


for문

for 문은 시퀀스(리스트, 튜플, 문자열 등)의 각 항목에 대해 반복 작업을 수행하는 반복문이다. for 문은 주로 지정된 범위 내에서 반복할 때 사용됩니다. 이것은 반복할 요소들이 미리 정해져 있는 경우에 사용한다.

for 요소 in 시퀀스:
    # 요소에 대한 작업 수행
  • 요소
    반복할 시퀀스의 각 항목이 for 문의 실행 도중에 할당되는 변수입니다.
  • 시퀀스
    반복할 데이터의 컬렉션(리스트, 튜플, 문자열 등)을 지정합니다.
  • 작업
    각 요소에 대해 수행할 작업을 표현합니다.

🖥️for문 예제

list1 = [10, 20, 30, 40]

for li in list1:
    print(li)

range() 함수

range() 함수는 파이썬에서 순차적인 정수의 시퀀스를 생성하는 데 사용되는 내장 함수입니다. 주로 for 문과 함께 사용되며, 일정한 범위 내에서 반복 작업을 수행할 때 유용하게 활용됩니다. range() 함수의 결과로 생성되는 순차적인 정수 시퀀스는 실제로 메모리에 저장되지 않고 필요할 때마다 생성되므로, 큰 범위의 반복문에도 효율적으로 사용할 수 있습니다.

range([start], stop, [step])
  • start (선택 사항)
    순차적인 범위의 시작 값을 지정합니다. 기본값은 0입니다.

  • stop
    순차적인 범위의 끝 값을 지정합니다. 생성된 시퀀스는 stop 값 직전까지의 정수를 포함합니다.

  • step (선택 사항)
    순차적인 값을 증가시키는 간격을 지정합니다. 기본값은 1입니다.

range() 함수의 반환값은 range 객체로, 이 객체는 실제 정수 시퀀스를 저장하지 않고 범위 정보만 가지고 있습니다. 따라서 필요한 정수 시퀀스는 실제 사용 시에 생성됩니다.

🖥️예제

num = range(0, 10, 1)
print(num)

for i in num:
    print(i, end=' ')

for i in range(0, 10, 1):
    print(i, end=' ') # 메모리에 저장되지 않는다.

for i in range(0, 10):
    print(i, end=' ')

🖥️응용 예제

# for문을 이용하여 1부터 100까지의 짝수의 총합 구하기
sum = 0

for i in range(0, 101, 2):
    sum += i

print(f' 1부터 100까지의 짝수의 총합: {sum}')


enumerate() 함수

enumerate() 함수는 파이썬에서 반복문을 사용할 때 인덱스와 값을 함께 가져오기 위해 사용되는 내장 함수입니다. 주로 for 문과 함께 사용되며, 반복문 내에서 순서를 추적하면서 값과 해당 값의 인덱스를 함께 사용할 때 유용합니다. enumerate() 함수는 (인덱스, 값)의 튜플을 반환하는 이터레이터(iterator)를 생성합니다.

enumerate(iterable, start=0)
  • iterable
    반복 가능한 객체(리스트, 튜플, 문자열 등)를 지정합니다.

  • start (선택 사항)
    인덱스의 시작 값을 지정합니다. 기본값은 0입니다.

enumerate() 함수는 (인덱스, 값) 형태의 튜플을 생성하여 이터레이터를 반환합니다. 이를 for 문과 함께 사용하여 인덱스와 값을 동시에 가져와 처리할 수 있습니다.

🖥️예제

li1 = [10, 20, 30, 40, 50]

for e in enumerate(li1):
    print(e)

li1 = [10, 20, 30, 40, 50]

for i, v in enumerate(li1):
  print(f'index:{i}, value:{v}')


zip() 함수

zip() 함수는 파이썬에서 여러 개의 반복 가능한(iterable) 객체를 병렬적으로 묶어주는 내장 함수입니다. 각 객체로부터 순서대로 하나의 요소씩 가져와 튜플로 묶어주는 이터레이터를 반환합니다. 주로 여러 개의 리스트나 튜플을 병렬적으로 처리하고자 할 때 사용됩니다.

zip(iterable1, iterable2, ...)

🖥️예제

li1 = [10, 20, 30, 40]
li2 = ['apple','banana','orange']

for li1, li2 in zip(li1, li2):
    print(li1, li2)
  # 개수가 더 작은쪽을 기준으로 반복문이 작동한다.

for n, A, a in zip('12345', 'ABCDE', 'abcde'):
    print(n, A, a)
# () 소괄호로 묶으면 튜플형태로 반환됩니다.


중첩 반복문

파이썬에서 중첩된 반복문은 하나의 반복문 안에 다른 반복문이 포함된 구조를 의미합니다. 중첩 반복문은 외부 반복문의 각 반복마다 내부 반복문이 모두 실행되는 방식으로 작동합니다. 이를 통해 다차원의 데이터를 처리하거나 복잡한 작업을 수행할 수 있습니다.

for 외부_변수 in 외부_시퀀스:
    for 내부_변수 in 내부_시퀀스:
        # 내부 반복문 코드
    # 외부 반복문 코드
  • 외부_변수
    외부 반복문의 현재 요소를 나타내는 변수입니다.

  • 외부_시퀀스
    외부 반복문에서 순회할 반복 가능한 객체(리스트, 튜플 등)입니다.

  • 내부_변수
    내부 반복문의 현재 요소를 나타내는 변수입니다.

  • 내부_시퀀스
    내부 반복문에서 순회할 반복 가능한 객체입니다.

🖥️예제

for i in range(1, 4):
    print(f'😄 i: {i}')
    for j in range(1, 4):
        print(f'   🍒 j:{j}')

# '🎃'를 이용하여 아래와 같은 도형을 만들어보자.

for i in range(5):
    for j in range(5) :
      print('🎃', end = ' ')
    print()


문제

  • 2단부터 9단까지 구구단을 출력하는 프로그램을 작성
  • 단 for, while을 사영하여 각각 작성

🖥️ for문 예제

# 2단부터 9단까지 구구단을 출력하는 프로그램을 작성

for i in range(2, 10):
    print()
    print(f'{i}단')
    for j in range(1,10):
        print(f'{i}단 x {j} = ',i * j)

🖥️while문 예제

i = 1
j = 0
while i < 9:
    print()
    i += 1
    j = 0
    print(f'{i}단')
    while j < 9:
      j += 1
      print(f'{i} x {j} =',i * j)

while문에서는 j변수를 꼭 초기화해줘야한다. 초기화를 해주지 않으면 j가 9보다 크게되어 반복문에서 탈출하기때문이다.

0개의 댓글

관련 채용 정보