01.17 while- 제어문 python (2)

김오왼·2022년 1월 17일
0

python

목록 보기
8/22

1<=100 사이 2배수 구하기

i = 1

while i <= 50:
if i % 2 == 0:
i += 1
print(i)

1 부터 50 까지 숫자를 구하고 * 2

while문을 사용하여, 100 이상의 자연수 중 가장 작은 23의 배수를 출력해 보세요.

i = 100

while i % 23 != 0:
i += 1
몰랐던 사실 다른 언어에는 i++ 증감식 있는데 파이썬엔 i +=1 로 증감식을 써야된다.

print(i)

while 이란 true 일 경우에만 반복을 한다. 즉 23의 배수에 해당하는 숫자에 조건이 맞으면 반복문을 탈출한다. 여기서는 i 의 값을 1씩 증가시켜주다가 115인 23배수를 찾았으니 값을 반환하고 반복문을 탈출함.

전역변수 지역변수는 함수외부 내부의 구분이지 코드블럭안에서는 모두 전역변수로 취급받는다. 즉 i 의 값이 변경되어 출력

if-else 조건문



파이썬을 쓰다보면 인덴팅(들여쓰기)의 중요성을 다시금 느낄 수 있었는데 여기선 i+=1 의 위치가 참 중요하다는 걸 다시 느꼈다. 확실히 c언어를 공부했을땐 bracket {}을 통해 증가값을 어디에 넣어줄 지 한 눈에 파악 가능했는데, 파이썬의 경우 탭으로 들여쓰기를 하다보니 깜빡하는 경우가 있음. i+=1은 코드블럭 내에서 실행 되는게 아니라 if 문 밖에서 증가를 해줘야 while 문을 통해 반복할때마다 증가해줄 수 가 있는 것.

total 이라는 변수를 초기화해주고 반복문을 돌며 조건에 맞게 구해진 i의 값을 total 에 할당해준다. 이 반복문 내부에서 print를 찍으면 구해진 모든 값들이 위와 같이 출력되고, 반복문 외부에서 i+=1 과같이 print을 찍으면 total값에 전부 더해진 i의 값 33167이 출력되는걸 볼 수 있다.


참고로 i += 1은 if문 밖에 있어야 합니다. 그렇지 않으면 끝이 안 나는 "무한 루프"에 빠지게 됩니다. 주의해 주세요!

profile
전문 금융인을 목표로하는 김야옹야옹이

0개의 댓글