반복문 활용3

2022. 9. 21. 22:19파이썬(Python)

반응형

1. continue

- for, while 안에서 사용 가능

- if와 같이 쓰임. 해당 조건이 만족하면 조건문 아래 코드를 더 이상 실행하지 않고 다시 위로 올라가 그다음 loop를 실행.

 

for i in range(1,11):
	코드 1
    if i%2==0:
    	코드2
        continue
    코드3

- 위의 코드에서 i가 2,4,6,8,10이면 코드 1 -> 코드 2만 수행

- i가 1,3,5,7,9이면 코드 1 -> 코드 3만 수행


 

Q) 조건에 부합하는 수

- 정수 n을 입력받아 1부터 n까지 3개의 조건을 만족하지 않는 수를 출력

- 조건 1 : 짝수이면서 4의 배수가 아닌

- 조건 2 : 8로 나눈 몫이 짝수

- 조건 3 : 7로 나눈 나머지4보다 작은

n=int(input())

for i in range(1,n+1):
    if (i%2==0 and i%4!=0) or ((i//8)%2==0) or (i%7<4) :
        continue
    else:
        print(i,end=' ')

결과

>> 100
11 12 13 25 27 40 41 47 60 61 75 76 88 89 95

2. break

- for, while 안에서 사용 가능

- if와 같이 쓰임. 해당 조건이 만족하는 경우 가장 가까이에 있는 loop를 탈출.

 

for i in range(1,11):
	코드1
    if i==8:
    	코드2
        break
    코드3
코드4

- 위의 코드에서 i가 1부터 7까지인 경우 코드 1 -> 코드 3 수행

- i가 8일 때 코드 1 -> 코드 2 수행. for를 탈출하여 코드 4 수행


Q) 1부터의 합

- n을 입력하여 1부터 1씩 증가시켜 합을 구함.

- 처음으로 합이 n이상이 될 때 그때의 합을 출력

n=int(input())

sum_val=0
i=1
while sum_val<n:
    sum_val+=i
    if sum_val>=n:
        break
    i+=1
print(f'1부터 {i}까지의 합 {sum_val}')

결과

>> 100
1부터 14까지의 합 105

Q) 1부터의 곱

- n을 입력하여 1부터 1씩 증가하여 곱을 구함

- 처음으로 곱이 n이상이 될 때 그때의 곱을 출력

n=int(input())

prod=1
i=1
while prod<n:
    prod*=i
    if prod>=n:
        break
    i+=1
print(f'1부터 {i}까지의 곱 {prod}')

결과

>> 100
1부터 5까지의 곱 120

Q) 1까지 나누기

- 정수 n을 입력. n을 차례대로 1,2,3,...으로 나눔.

- 몫이 1 이하가 되는 순간까지 나눗셈을 진행한 총 횟수 출력

n=int(input())

cnt=0
i=1
while n>1:
    print(f'{n} / {i} = {n//i}')
    n=n//i
    i+=1
    cnt+=1

print(f'{cnt}번 계산')

결과

>> 100
100 / 1 = 100
100 / 2 = 50
50 / 3 = 16
16 / 4 = 4
4 / 5 = 0
5번 계산

3. 무한 루프

- 입력을 몇 번 받아야 할지 알 수 없을 때 while을 이용한 무한 루프를 사용

- while True라는 반복하는 조건과 특정 조건 만족 시 탈출이 가능한 break를 활용

while True:
    코드1
    if 조건:
    	코드2
        break
    코드3
코드4

- 위 코드에서 조건을 만족하지 않는 경우  =>  코드 1코드 3 수행

- 조건을 만족하면  =>  코드 2가 수행. 반복문 탈출. 코드 4 수행


Q) 합계 구하기 : 0 종료

- 숫자를 계속 입력받기.

- 0이 입력되면 입력받은 숫자들의 을 출력

sum_val=0

while True:
    n=int(input())
    if n==0:
        break
    sum_val+=n

print(sum_val)

결과

>> 12
>> 32
>> 44
>> 74
>> 0
162

Q) 홀수, 짝수 조건 합계

- 어떤 수를 입력하여 그 수가 홀수면 그대로 더한다.

- 짝수는 2를 나눈 몫을 더한다.

- 짝수가 5번 나오면 프로그램을 종료

ex) 1 2 3 4 5 6 7 8 9 10  =>  1+1+3+2+5+3+7+4+9+5 = 40

sum_val=0
cnt=0

while True:
    n=int(input())
    if n%2==0:
        sum_val+=(n//2)
        cnt+=1
    else:
        sum_val+=n
    if cnt==5: 
        break

print(sum_val)

결과

>> 1
>> 2
>> 3
>> 4
>> 5
>> 6
>> 7
>> 8
>> 9
>> 10
40

 

 

 

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

다중 반복문1  (0) 2022.09.24
반복문 활용4  (0) 2022.09.22
반복문 활용2(합, 곱)  (0) 2022.09.20
반복문 활용  (0) 2022.09.19
반복문_while  (0) 2022.09.17