● 스타트 파이썬 : 반복문(2)
Python에서 사용하는 반복문과 반복문을 빠져가가는 것에 대해 공부해보도록 하겠습니다.
1. while문
while문은 for문과 함께 많이 사용되는 반복문으로 사용방법도 비슷합니다. while문은 조건식이 참 인동안 문장을 반복하여 수행합니다.
while 조건식 :
문장1, 문장2 ...
1.1 기본 구조
# 1.1 예제
sum = 0
i = 1
while i <= 10 :
sum = sum + i
print('i의 값 : %d => 합계 : %d'%(i,sum))
i = i + 1
while문에 걸려있는 조건인 i 가 10보다 작거나 같다는 부분이 만족하는 동안에는 아래 문장들이 계속해서 반복하여 결과창에 출력됩니다. 마지막에 i 가 10 + 1 로 11이 되어 조건이 만족되지 않을 경우 while문에서 빠져나와 종료됩니다.
1.2 while문과 for문의 차이점
# 예제 1.2
sum = 0
for i in range(1,11) :
sum = sum + i
print('i의 값 : %d => 합계 : %d'%(i,sum))
1.1에서 했던 예제를 for문으로 시행했을 때의 코드입니다. 결과값은 1.1 예제 결과와 동일하게 나옵니다. for문은 while문에서 했던 i의 초기값 설정을 해주지 않아도 됩니다. 또한 while문에서 작성했던 i++와 i <= 10의 조건은 for문에서는 range() 가 역할을 대신해줍니다.
1.3 배수 합계 구하기
# 1.3 예제
sum = 0
i = 200
while i <= 500 :
if i % 5 == 0 :
sum = sum + i
i = i + 1
print('200에서 500까지의 5의 배수의 합 = %d'%sum)
while문에다가 if문을 같이 사용하여 코드를 작성하였습니다. 조건문에 5의 배수에 해당하는 i 값들만가지고 합을 구하도록 하였고 i = i + 1로 while문이 조건에 만족할 때까지 계속 반복문이 돌아가도록 하였습니다.
1.4 영어 모음 개수 구하기
# 1.4 예제
s = 'Python is widely used by a number of big companies'
i = 0
count = 0
print ('모음 : ',end='')
while i <= len(s) - 1 :
if(s[i]) == 'a' or (s[i]) == 'A' or (s[i]) == 'e' or (s[i]) == 'E'\
or (s[i]) == 'i' or (s[i]) == 'I' or (s[i]) == 'O' or (s[i]) == 'o' or (s[i]) == 'u' or (s[i]) == 'U' :
count = count + 1
print(s[i], end = ' ')
i = i + 1
print('')
print('모음의 개수 : %d'%count)
len() 함수를 사용하여 문장의 길이로 조건을 걸어 i의 값을 0에서 len(s)-1 까지 가지도록 만들어줍니다.
1.4.1 연습문제 _ 홀수 누적 합계 구하기
# 예제 4.1.1
a = 200
count = 1
sum = 0
while a <= 300 :
if a % 2 != 0 :
sum = sum + a
print(sum,end = ' ')
if count % 10 == 0 :
print('')
count = count + 1
a = a + 1
200에서 300까지 숫자 중 홀수 누적 합계를 구하는 코드입니다. a % 2 != 0 을 통해 홀수의 값만 sum 변수에 합으로 계속 들어가도록 만들었습니다. 또한 count 는 10번째 값마다 줄바꿈을 해주기 위해 10으로 나누었을 때 나머지가 없을 경우에만 실행하도록 하였습니다.
2. break문
for문이나 while문을 사용하다 보면 반 루프를 수행 중 중간에 루프를 빠져나가고 싶은 경우가 종종 생깁니다. 이때 break를 사용하여 빠져나가면 되는데 일반적으로 if문과 같이 사용되어 특정 조건을 만족하면 반복 루프를 빠져나가도록 만들어줍니다.
for i in range(범위):
문장1
문장2
...
if 조건식 :
break # 범위를 다 채우지 못하더라도 조건 만족하면 반복 루프 탈출
while 조건식 :
문장1
문장2
...
if 조건식 :
break # 마찬가지로 반복 루프 탈출
2.1 for문의 반복 루프 빠져나가기
# 2.1 예제
for i in range(1, 1001) :
print(i, end = ' ')
if i == 10 :
break
2.2. while문의 반복 루프 빠져나가기
# 2.2 예제
i = 1
sum = 0
while True : # true이므로 무한 반복
if i > 10 :
break
print('i = %d , sum = %d'%(i,sum))
sum = sum + i
i = i + 1
print('\n 합계 : %d'%sum)
여기서 while 조건이 True로 들어갔는데 이는 무한 반복을 의미합니다. 여기서 주의할 점은 파이썬에서는 R 프로그래밍과 달리 T, true는 아무 의미없는 하나의 변수명처럼 인식되므로 꼭 참의 의미를 가진 트루값을 사용하고 싶을 경우 'True'라고 작성해주셔야 합니다.
반복문은 python 프로그래밍 작업을 하면서 가장 많이 사용한다해도 과언이 아닐 정도로 굉장히 많이 쓰는 구문입니다. 이번에는 간단히 어떻게 쓰는지 정도만 안거라 다음번에 예제 문제를 많이 풀어보도록 하겠습니다. 다음 시간에는 리스트를 배워보도록 하겠습니다. 끝까지 읽어주셔서 감사합니다 :)
'Python > 스타트파이썬' 카테고리의 다른 글
[스타트파이썬] 튜플과 딕셔너리 (0) | 2019.10.08 |
---|---|
[스타트파이썬] 리스트 : list, append, remove (0) | 2019.10.08 |
[스타트파이썬] 반복문(1) : for문 (0) | 2019.10.07 |
[스타트파이썬] 조건문(2) : if ~, if ~ else ~, if ~ elif ~ else ~, 중첩문 (0) | 2019.10.06 |
[스타트파이썬] 조건문(1) : if, 비교 연산자, 논리 연산자 (0) | 2019.10.06 |