11. 제어문-반복문

2024. 9. 26. 04:38파이썬(python)

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


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

while 조건:
     조건이 참인 동안 실행될 코드
     
     
#1) 참고 사항 주의!!
#while False: #True시에는 무한루프가 돈다
#  print('Hello Python')


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


3)
# 1부터 10까지의 합
i = 1
sum = 0
while i <= 10:
  sum += i
  i += 1
#print(f'1부터 10까지의 합 : {sum}')
#print(f'현재 i의 값: {i}')
#1부터 10까지의 합 : 55
#현재 i의 값: 11

 

### 문제 1
#1부터 100까지의 짝수의 합을 출력하는 프로그램을 작성해보자.
i = 1
sum = 0

#if i % 2 == 1

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

1부터 100까지의 짝수의 합: 2550

 

## 문제 2
원하는 단을 입력받아 해당 구구단을 출력
원하는 단을 입력하세요:
while 문을 사용하여 푸시오
-->

dan = int(input('원하는 단을 입력하세요 : '))
sum = 0
i = 0
print(f'{dan}단)
while i < 9:
i += 1
sum = i * dan
print(f'{dan} * {i} = {dan * i}')
-->

#원하는 단을 입력하세요: 3
#3단
#3 * 1 = 3
#3 * 2 = 6
#3 * 3 = 9


5)

##break: 반복문을 즉시 종료할때 사용하는 키워드
#while 또는 for 에서 모두 사용 가능

while True:
  num = int(input('짝수를 입력하세요 : '))
  if num % 2 == 0:
    print("짝수를 입력하셨습니다.")
    print("프로그램을 종료합니다.")
    break
  else:
    print('입력한 숫자가 홀수입니다. 다시 입력하세요') 
-->

짝수를 입력하세요 : 2
짝수를 입력하셨습니다.
프로그램을 종료합니다.

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

1)
for s in "Hello":
  print(s)
-->
H
e
l
l
o

 
2)
list1 = [10, 20, 30, 40]
for li in list1:
  print(li)
-->

10
20
30
40

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

 

 

 

## 문제 2
#원하는 단을 입력받아 해당 구구단을 출력
#원하는 단을 입력하세요:
#while 문을 사용하여 푸시오
#-->

dan = int(input('원하는 단을 입력하세요 : '))
sum = 0
i = 0
print(f'{dan}단)
	while i < 9:
	i += 1
	sum = i * dan
print(f'{dan} * {i} = {dan * i}')
#-->

#원하는 단을 입력하세요: 3
#3단
#3 * 1 = 3
#3 * 2 = 6
#3 * 3 = 9


5)

##break: 반복문을 즉시 종료할때 사용하는 키워드
#while 또는 for 에서 모두 사용 가능

while True:
  num = int(input('짝수를 입력하세요 : '))
  if num % 2 == 0:
    print("짝수를 입력하셨습니다.")
    print("프로그램을 종료합니다.")
    break
  else:
    print('입력한 숫자가 홀수입니다. 다시 입력하세요') 
-->

짝수를 입력하세요 : 2
짝수를 입력하셨습니다.
프로그램을 종료합니다.

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

#1)
for s in "Hello":
  print(s)
-->
H
e
l
l
o

 
#2)
list1 = [10, 20, 30, 40]
for li in list1:
  print(li)
-->

10
20
30
40

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

for 외부_변수 in 외부_시퀀스:
    for 내부_변수 in 내부_시퀀스:
        # 내부 반복문 코드
    # 외부 반복문 코드

 

 

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

1)
num = range(10)  #range(0, 10, 1)
print(num)
-->
range(0, 10)


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


3)
for i in num:
  print(i,end=' ')
--> 
0 1 2 3 4 5 6 7 8 9


4)
for i in range(10):
  print(i, end= ' ')
-->
0 1 2 3 4 5 6 7 8 9


5)
for i in range(5, 10):
  print(i, end= ' ')
-->
5 6 7 8 9


6)
for i in range(0, 10, 2):
  print(i, end= ' ')
-->
0 2 4 6 8


7)
### 문제 3
#1부터 100까지의 짝수의 합을 출력하는 프로그램을 작성해보자.
#단, for ~ range()를 이용하여 작성
sum = 0
for i in range(0, 101, 2):
  sum += i
print(f'짝수의 합 : {sum}')
-->
짝수의 합 : 2550


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


1)
for e in enumerate('Hello'):
  print(e)
-->
(0, 'H')
(1, 'e')
(2, 'l')
(3, 'l')
(4, 'o')


2)
for e in enumerate('hello',2):
print(e)
-->

(2, 'h')
(3, 'e')
(4, 'l')
(5, 'l')
(6, 'o')


3)
list1 = {10, 20, 30, 40}
#(0, 10)
#i, v = (0, 10)
for e in enumerate(list1):
  print(e)
-->
(0, 40)
(1, 30)
(2, 20)
(1, 10)

4)
list1 = {10, 20, 30, 40}
#(0, 10)
#i, v = (0, 10)
for i,v in enumerate(list1):
  print(f'인덱스 {i} 값 {i}')
-->
인덱스 0 값 0
인덱스 1 값 1
인덱스 2 값 2
인덱스 3 값 3


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


1)
li1 = [10, 20, 30]
li2 = ['apple', 'banana', 'orange']
for l1, l2 in zip(li1, li2):
    print((l1, l2))
-->
(10, 'apple')
(20, 'banana')
(30, 'orange')


2)
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


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

for li in zip(li1, li2):
    print(li)
-->
(10, 'apple')
(20, 'banana')
(30, 'orange')


4)
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')


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


1)
for i in range(1,3):
  print(f'😎      l:{i}')
  for j in range(1,4):
    print(f'😍 j:{j}')
-->

😎 l:1
😍 j:1
😍 j:2
😍 j:3
😎 l:2
😍 j:1
😍 j:2
😍 j:3


#4. 문제
##'🎃'를 이용하여 아래와 같은 모형을 만들어보자
#🎃🎃🎃🎃🎃
#🎃🎃🎃🎃🎃
#🎃🎃🎃🎃🎃
#🎃🎃🎃🎃🎃
#🎃🎃🎃🎃🎃
-->

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



5. 문제
'🎃'를 이용하여 아래와 같은 모형을 만들어보자
# 🎃 🎃 🎃 🎃 🎃
# 🎃 🎃 🎃 🎃
# 🎃 🎃 🎃
# 🎃 🎃
# 🎃
-->

for i in range(5):
  for j in range(i, 5):
    print('🎃', end= ' ')
  print()
  
  
5-2) '🎃'를 이용하여 아래와 같은 모형을 만들어보자
# 🎃
# 🎃 🎃
# 🎃 🎃 🎃
# 🎃 🎃 🎃 🎃
# 🎃 🎃 🎃 🎃 🎃
-->
for i in range(5):
  for j in range(i, 5):
    print('🎃', end= ' ')
  print()
  
  
 ##문제 5
2단부터 9단까지 구구단을 출력하는 프로그램을 만들어보자
(단, for 문과 while 문을 각각 사용하여 별도로 작성)
for i in range(2,10):
  print(f'{i}단')
  for j in range(1, 10):
    print(f'{i} * {j} = {i*j}')
-->    
2단 2 * 1 = 2
2 * 2 = 4
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3단 3 * 1 = 3
3 * 2 = 6
3 * 8 = 24
3 * 9 = 27


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
  print()
-->

2단
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
.....
9 x 9 = 81

 

728x90
LIST

'파이썬(python)' 카테고리의 다른 글

13. 사용자 정의 함수  (2) 2024.09.26
12. 컬렉션 & 반복문  (2) 2024.09.26
10. 제어문-조건문  (2) 2024.09.25
9. 파이썬 연산자  (6) 2024.09.25
8. 컬렉션 타입-딕셔너리  (1) 2024.09.25