ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 39 - while 반복문
    study with Q - 파이썬 2024. 4. 25. 08:08

    #while 반복문 (중고급 단계에서 사용하기는 한디, 일단 눈도장 고고)

    : 무한 반복문 - 즉, 끝나지 않는 반복문

     

    while 조건:

       복합구문

    -의 형태로 사용하고, 조건이 참이라면 계속 반복한다.

     

    eg) 다음과 같이 조건이 참이면, 끝나지 않고 무한히 반복함. (이때, 프로그램을 멈추고 싶다면 ctl+c를 누른다.)

    while True:
      print(".")

     

    #while 반복문 - for 반복문처럼 사용하기

    : for 반복문으로 할 수 있는 일은 while 반복문으로 구현할 수 있지만, 반대는 성립하지 않는다. 

     

    !i*를 반복변수로 사용하고 while에 조건을 붙이면 :

    i = 0 
    while i < 5:
      print(f"{i}번째 반복")
      i+=1
    >>>
    0번째 반복
    1번째 반복
    2번째 반복
    3번째 반복
    4번째 반복

     

    ※주의: print 위치가 바뀌면 출력도 바뀐다. 

    더보기
    i = 0 
    while i < 5:
      i+=1
      print(f"{i}번째 반복")
    >>>
    1번째 반복
    2번째 반복
    3번째 반복
    4번째 반복
    5번째 반복

    #while 반복문 - 상태 기반 반복

    위의 while 반복문은 for 반복문에 range를 이용해서 다음과 같이 코드를 짧게 바꿀 수 있다.

    for i in range(0, 5):
      print(f"{i}번째 반복")

     

    🧐 그럼 while 반복문은 언제 쓰는디? > for 반복문으로 구현할 수 없는 것 (조건으로 반복하는 것)

     

    예시) 리스트 내부에서 특정 값이 사라질 때까지 반복문을 계속 돌리는 것

    a라는 리스트에서 2의 값을 삭제하면

     

    방법1: 2의 값을 삭제할 때마다 print하는 방법

    a = [0,1,2,1,2,0,1,2]
    value = 2
    
    while value in a:
      a.remove(value)
      print(a)
    >>> 
    [0, 1, 1, 2, 0, 1, 2]
    [0, 1, 1, 0, 1, 2]
    [0, 1, 1, 0, 1]

     

    방법2: 2의 값을 모두 삭제하고 print하는 방법 - 외우세여

    a = [0,1,2,1,2,0,1,2]
    value = 2
    
    while value in a:
      a.remove(value)
    print(a)
    >>>
    [0, 1, 1, 0, 1]

     

    #while 반복문 - 시간 기반 반복

    대부분의 프로그램에는 UNIX 시간*이라는 함수가 있다. 

    * UNIX 시간 : 1970년 1월 1일 00:00:00 협정 세계시 부터의 경과 시간을 초로 환산하여 정수로 나타낸 것

     

    imprt time이라는 구문(문장)을 사용해서 time이라는 모듈을 읽어들이고 time.time코드를 사용해서 확인 >무ㅔ?

    import time
    print(time.time())

     

    → 특정 시간 동안 뭘 하고 있어라-를 만들 수 있음 (휴대폰에 타이머 같은 건가)

    1초동안 UNIX 시간을 

    import time
    start = time.time()
    now = time.time()
    
    while now < start + 1:
      print(now, start + 1)
      now = time.time()

    ※주의: while 내부에 now 함수가 없다면 now도 고정값이 되어 코드가 무한히 반복됨

     

    replit

Designed by Tistory.