카테고리 없음

[파이썬 기초] while 반복문

해방감자 2019. 8. 16. 16:24
반응형

while 반복문

while True/False Expression:
    code

# while 반복문 사용
while True:
    # "."을 출력한다./
    # 기본적으로 end가 "\n" 이라 줄바꿈이 일어나는데
    # 빈 문자열을 "" 로 바꾸어서 줄바꿈이 일어나지 않고 무한대로 . 이 찍힌다.
    print(".", end="")

-> 
................(생략)

i = 0
while i < 10:
    print("{}번쨰 i입니다.".format(i))
    i += 1

while 반복문 : 상태를 기반으로 반복하기 : remove() 함수는 리스트 내부에서 해당값을 하나만 제거할 수 있었다. while을 사용하면 여러 개를 제거 할 수 있다. while 반복문의 조건을 '리스트 내부에 요소가 있는 동안'으로 지정한다. 알고리즘에서 많이 쓰이는 형태이다.

test_list = [1,2,1,2]
value = 2

while value in test_list:
    test_list.remove(value)

print(test_list)

-> [1, 1]

while 반복문 : 시간을 기반으로 반복하기 : 시간을 기반으로 반복하려면 유닉스타임이라는 개념을 알아야 한다. 유닉스타임이란 세계 표준시(UTC)로, 1970년 1월 1일 0시 0분 0초를 기준으로 몇 초가 지났는지를 정수로 나타낸 것을 말한다.

import time
print(time.time())

-> 1565938064.498732


number = 0
target_tick = time.time() + 5

while time.time() < target_tick :
    number += 1

#출력합니다.
print("5초 동안 {}번 반복하였습니다.".format(number))
-> 5초 동안 24249793번 반복하였습니다.
Tip : for loop vs while loop
스스로 코드를 입력해 보며 while 반복문보다 for 반복문으로 작성하는 것이 더 편할 것 같다. 혹은 그 반대가 좋겠다라는 것을 직접 스스로 느끼는 것이 중요하다. 일반적으로 for는 반복 횟수를 알고 있는 경우, while은 조건에 따라 반복할 때 사용한다.
  • for Loop
  1. 반복 횟수가 정해진 경우
  2. 배열과 함께 주로 많이 사용
  • while Loop
  1. 무한 루프나 특정 조건에 만족할 때까지 반복해야하는 경우

while 반복문 : break 키워드 / continue 키워드

반복문 내부에서만 사용할 수 있는 break 와 continue 라는 특수한 키워드가 있다.

 

break 키워드 : break키워드는 반복문을 벗어날 때 사용하며, 일반적으로 무한 반복문을 만들고 내부의 반복을 벗어날 때 많이 사용한다.

i = 0

while True:
    print("{}번째 반복입니다.".format(i))
    i = i + 1
    # 반복을 종료합니다.
    input_text = input("> 종료하시겠습니까?(Y/y): ")
    if input_text in ["Y","y"]:
        print("반복을 종료합니다")
        break

continue 키워드 : 현재 반복을 생략하고, 다음 반복으로 넘어갈 때 사용하는 키워드.

numbers = [5, 15, 6, 20, 7 , 35]

for number in numbers :
    if number < 10:
        continue
    print(number)

-> 
15
20
35

 

Quiz

# Quiz1
numbers = [5, 15, 6, 20, 7 , 35]

for number in numbers :
    if number < 10:
        continue
    print(number)

-> 
15
20
35

# Quiz2
limit = 10000
i = 1
sum = 0

while sum < limit :

    sum += i
    i += 1

print("{}를 더할 때 {}을 넘으며 그때의 값은 {}입니다.".format(i,limit,sum))
-> 142를 더할 때 10000을 넘으며 그때의 값은 10011입니다.

# Quiz3
limit = 10000
i = 1
sum = 0

while sum < limit :
    sum += i
    i += 1

print("{}를 더할 때 {}을 넘으며 그때의 값은 {}입니다.".format(i,limit,sum))
-> 142를 더할 때 10000을 넘으며 그때의 값은 10011입니다.
반응형