본문 바로가기
Python 코딩도장

파이썬 코딩도장 Unit 17 정리 : while 반복문

by chanfficial 2022. 1. 15.

Unit 17

 

1. while 반복문 사용하기

  • while 반복문은 조건식을 지정하고 끝에 : (콜론)을 붙인 뒤 그 다음 줄에 반복할 코드와 변화식을 넣는다. 이때 초기식은 특별한 것이 없고 보통 변수에 값을 저장하는 코드이다.
    i = 0                # 초기식
    while i < 100:       # while 조건식
         print('Hello, world!')  # 반복할 코드
         i += 1                  # 변화식​
    - while 반복문에서는 초기식부터 시작하여 조건식을 판별한 다음, 조건식이 참이면 반복할 코드와 변화식을 함께 수행한다. 그런 후에 다시 조건식을 판별하여 참이면 코드를 계속 반복하고, 거짓이면 반복문을 끝낸 뒤 다음 코드를 실행한다.
  • while 반복문은 반복할 코드 안에 변화식을 지정하지 않으면 반복이 끝나지 않고 계속 실행(무한 루프)이 된다.
    # 초깃값이 감소
    >>> i = 100
    >>> while i > 0:
    ...     print('Hello, world!', i)
    ...     i -= 1
    ...
    Hello, world! 100
    Hello, world! 99
    Hello, world! 98
    ... (생략)
    Hello, world! 2
    Hello, world! 1
  • 입력한 횟수대로 반복하기
    count = int(input('반복할 횟수를 입력하세요: '))
     
    i = 0
    while i < count:   # i가 count보다 작을 때 반복
        print('Hello, world!', i)
        i += 1​
    - 만약 3을 입력하여 count에 저장됐다면 'Hello, world!'는 3번만 출력된다.
  • 초깃값을 받은 뒤 초깃값만큼 출력하기
    count = int(input('반복할 횟수를 입력하세요: '))
     
    while count > 0:   # count가 0보다 클 때 반복
        print('Hello, world!', count)
        count -= 1     # count를 1씩 감소시킴​

 

 

2. while 반복문에서 반복 횟수가 정해지지 않았을 때

  • 난수(random number) : 특정 주기로 반복되지 않으며 규칙 없이 무작위로 나열되는 숫자
  • 파이썬에서 난수를 생성하려면 random 모듈이 필요한데, 모듈은 'import random'을 선언하여 가져올 수 있다.
  • random.random()으로 random 모듈의 random 함수 호출
    >>> random.random()
    0.002383731799935007
    >>> random.random()
    0.3297914484498006​
    - random.random()을 실행할 때 매번 다른 실수가 출력되는데 바로 이런 숫자가 난수이다.
  • 숫자를 알아보기 쉽게 하기 위해서는 정수를 생성하는 random 모듈의 randint 함수를 사용한다.
    random.randint(a, b)​
    - 이런 randint 함수는 난수를 생성할 범위를 지정하며, 범위에 지정한 숫자도 난수에 포함된다. 즉 random.randint(1, 6)을 실행하면 1과 6 사이의 난수가 생성된다.
  • 1과 6 사이의 난수를 생성한 뒤 3이 나오면 반복을 끝내는 코드(3이 나올 때 까지 계속 반복)
    import random  # random 모듈을 가져옴
     
    i = 0
    while i != 3:  # 3이 아닐 때 계속 반복
        i = random.randint(1, 6)    # randint를 사용하여 1과 6 사이의 난수를 생성
        print(i)​
    - 난수를 이용하기 때문에 실행할 때마다 반복 횟수가 달라진다.
  • while 반복문은 반복 횟수가 정해져 있지 않을 때 유용하다.
  • random.choice 함수를 사용하면 시퀀스 객체에서 요소를 무작위로 선택할 수 있다.
    # random.choice(시퀀스객체)
    >>> dice = [1, 2, 3, 4, 5, 6]
    >>> random.choice(dice)
    1
    >>> random.choice(dice)
    4
    >>> random.choice(dice)
    3
    - 1, 2, 3, 4, 5, 6이 들어있는 리스트에서 무작위로 숫자를 선택한다.

 

 

3. while 반복문으로 무한 루프 만들기

  • while에 조건식 대신 True를 지정하면 무한히 반복하는 무한 루프가 만들어지고, 조건식이 항상 참이므로 변화식도 필요가 없다.
    while True:  # while에 True를 지정하면 무한 루프
        print('Hello, world!')
    - 이 파일을 실행한 상태로 두면 'Hello, world!'는 끝나지 않고 계속 출력된다. 그렇기 때문에 IDLE이나 콘솔에서는 Ctrl+C를 입력하여 무한 루프를 종료할 수 있다.
  • while에서 True 대신 True로 취급하는 값(0이 아닌 숫자, 내용이 있는 문자열 등)을 사용해도 무한 루프로 동작한다.
    while 1:  # 0이 아닌 숫자는 True로 취급하여 무한 루프로 동작
        print('Hello, world!')
        
    while 'Hello':  # 내용이 있는 문자열은 True로 취급하여 무한 루프로 동작
        print('Hello, world!')​

 

 

정리 참조

https://dojang.io/course/view.php?id=7 

 

강좌: 파이썬 코딩 도장

모두 펼치기모두 접기

dojang.io