1. 반복문

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

 

2. while 문

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

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

 

 

 

 

# while 문을 사용할 때 주의 사항

  • 무한 루프: 만약 while 문의 조건이 항상 참이라면 코드가 무한 루프에 빠질 수 있습니다. 프로그램이 의도대로 종료되지 않는 상황을 방지하기 위해 조건을 제대로 설정해야 합니다.
  • 조건 변경: while 문 내에서 조건을 변경해야 루프가 종료되는 경우도 있습니다. 그렇지 않으면 무한 루프에 빠질 수 있습니다.
  • 끝 조건: 반복이 더 이상 필요하지 않을 때 while 문을 종료하는 조건을 명확하게 설정해야 합니다.
  • 적절한 초기화: 반복 변수나 조건을 사용하기 전에 적절하게 초기화해야 합니다.
i = 1

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

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

 

# 1부터 10까지 총합
i = 1
sum = 0
while i <= 10 :
  sum += i
  '''
  sum + i = sum
    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까지 짝수의 합 #1
i = 0
sum = 0

while i <= 100:
  sum += i
  i = i + 2
print(f'1 부터 100까지의 짝수 합 : {sum}')



# 1부터 100까지 짝수의 합 #2
i = 1
sum = 0

while i <= 100:
  if  i % 2 == 0 :
    sum += i
  i += 1
print(f'1 부터 100까지의 짝수 합 : {sum}')
더보기
1 부터 100까지의 짝수 합 : 2550
1 부터 100까지의 짝수 합 : 2550
# 원하는 구구단을 입력받아 해당 단의 구구단을 출력
dan = int(input('원하는 단을 입력하세요 : '))
print(f'{dan} 단')

# 6 * 1 = 6
# 6 * 2 = 12
i = 1
while i <= 9:
  print(f'{dan} * {i} = {dan * i}')
  i += 1
더보기
원하는 단을 입력하세요 : 9
9 단
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81

 

 

 

3. for 문

for 문은 시퀀스(리스트, 튜플, 문자열 등)의 각 항목에 대해 반복 작업을 수행하는 반복문입니다.

for 문은 주로 "지정된 범위 내에서 반복"할 때 사용됩니다. 이것은 반복할 요소들이 미리 정해져 있는 경우에 유용합니다.

 
for 요소 in 시퀀스:
    # 요소에 대한 작업 수행

 

 

 
list1 = [10, 20, 30, 40]

for li in list1 :
  print(li)
더보기
10
20
30
40

 

4. range() 함수

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

 

range([start], stop, [step])

 

start (선택 사항): 순차적인 범위의 시작 값을 지정합니다. 기본값은 0입니다.
stop: 순차적인 범위의 끝 값을 지정합니다. 생성된 시퀀스는 stop 값 직전까지의 정수를 포함합니다.
step (선택 사항): 순차적인 값을 증가시키는 간격을 지정합니다. 기본값은 1입니다.

 

 

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

for i in num:
  print( i, end = ' ')
더보기
range(0, 10)
0 1 2 3 4 5 6 7 8 9
for i in range(0, 10, 1):
    print(i, end=' ')
    
for i in range(0, 10):
    print(i, end=' ')

for i in range(10):
    print(i, end=' ')
    
for i in range(1, 10, 2):
    print(i, end=' ')
더보기
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 
2 4 6 8
# for문을 이용하여 1부터 100까지 짝수의 총합 구하기
sum = 0
for i in range(0,101,2):
  sum += i
print(f'1부터 100까지의 짝수의 총합 : {sum}')
더보기
1부터 100까지의 짝수의 총합 : 2550

 

 

5. 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)
더보기
(0, 10)
(1, 20)
(2, 30)
(3, 40)
(4, 50)
li1 = [10, 20, 30, 40, 50]
for i, v in enumerate(li1):
  print(f'index:{i}, value:{v}')
더보기
index:0, value:10
index:1, value:20
index:2, value:30
index:3, value:40
index:4, value:50

 

6. zip() 함수

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

zip(iterable1, iterable2, ...)

iterable1, iterable2, ...: 병렬적으로 묶을 반복 가능한 객체들을 지정합니다. 여러 개의 인자로 전달할  있습니다.

 

#len은 쌍 개수가 맞지 않을 경우 오류가 발생
li1 = [10, 20, 30]
li2 = ['apple', 'banana', 'orange']

for i in range(len(li1)):
    print(li1[i], li2[i])
더보기
10 apple
20 banana
30 orange

 

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

for l1, l2 in zip(li1, li2):
  print(l1, l2)
더보기
10 apple
20 banana
30 orange

 

li1 = [10, 20, 30, 40] #4개
li2 = ['apple', 'banana', 'orange'] #3개

# 반복 3바퀴만 실행 : 돌 수 있는 만큼만 돔
for l1, l2 in zip(li1, li2):
    print(l1, l2)
더보기
10 apple
20 banana
30 orange

 

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

for li in zip(li1, li2):
    print(li)
더보기
(10, 'apple')
(20, 'banana')
(30, 'orange')

 

for n, A, a in zip('12345','ABCDE','abcde'):
  print(n,A,a)
더보기
1 A a
2 B b
3 C c
4 D d
5 E e

 

 

 

7. 중첩 반복문

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

for 외부_변수 in 외부_시퀀스:
    for 내부_변수 in 내부_시퀀스:
        # 내부 반복문 코드
    # 외부 반복문 코드
  • 외부_변수: 외부 반복문의 현재 요소를 나타내는 변수입니다.
  • 외부_시퀀스: 외부 반복문에서 순회할 반복 가능한 객체(리스트, 튜플 등)입니다.
  • 내부_변수: 내부 반복문의 현재 요소를 나타내는 변수입니다.
  • 내부_시퀀스: 내부 반복문에서 순회할 반복 가능한 객체입니다.

 

for i in range(1, 4):
  print(f'푸바오 i : {i}')
  for j in range(1, 4):
    print(f'🐼 j : {j}')
더보기
푸바오 i : 1
🐼 j : 1
🐼 j : 2
🐼 j : 3
푸바오 i : 2
🐼 j : 1
🐼 j : 2
🐼 j : 3
푸바오 i : 3
🐼 j : 1
🐼 j : 2
🐼 j : 3

 

for i in range(5):
  print('가')
  for j in range(i, 5): #step생략
    print('🐼', end = "")
  print()
더보기
# '🐼'를 이용하여 아래와 같은 도형을 만들어보자
'''
🐼🐼🐼🐼🐼
🐼🐼🐼🐼🐼
🐼🐼🐼🐼🐼
🐼🐼🐼🐼🐼
🐼🐼🐼🐼🐼
'''

for i in range(5):
  for j in range(5):
    print('🐼', end = '')
  print()
# '🐼'를 이용하여 아래와 같은 도형을 만들어보자
'''
🐼🐼🐼🐼🐼
🐼🐼🐼🐼
🐼🐼🐼
🐼🐼
🐼
'''

for i in range(5):
  for j in range(i, 5): #i가 하나씩 커지므로 출력되는 🐼가 하나씩 줄어듬
    print('🐼', end = '')
  print()
# '🐼'를 이용하여 아래와 같은 도형을 만들어보자
'''
🐼
🐼🐼
🐼🐼🐼
🐼🐼🐼🐼
🐼🐼🐼🐼🐼
'''

for i in range(1,6):
  for j in range(i):
    print('🐼', end = '')
  print()
  
  
for i in range(5):
  for j in range(0, i+1):
    print('🐼', end = '')
  print()
### 문제
#* 2단부터 9단까지 구구단을 출력하는 프로그램을 작성
for i in range(1, 10):
  print(f'{i}단')
  for j in range(1, 10):
   print(f'{i} * {j} = {i*j}')
#while문
i = 2
j = 1

while i <= 9:
  print(f'{i} 단')
  while j <= 9:
    print(f'{i} * {j} = {i*j}')
    j += 1
  i += 1
  j = 1 # j = 1 이라는 세팅을 해주어야 반복문이 다시 돌때 j가 초기화 됨

'컴퓨터 비전 > 파이썬 기초' 카테고리의 다른 글

12. 사용자 정의 함수  (1) 2023.12.10
11. 컬렉션과 반복문  (1) 2023.12.10
9. 제어문 - 조건문  (2) 2023.12.08
8. 파이썬 연산자  (2) 2023.12.08
7. 파이썬 컬렉션 타입 - 딕셔너리  (1) 2023.12.08