Python - Python while 반복문
Python
- Python 기본
- Python 숫자 계산하기
- Python 변수 만들기
- Python 출력 방법
- Python 불과 비교, 논리 연산자
- Python 문자열 사용하기
- Python 리스트와 튜플 사용하기
- Python 시퀀스 자료형 활용하기
- Python 딕셔너리 사용하기
- Python if 조건문으로 특정 조건일 때 코드 실행하기
- Python else를 사용하여 두 방향으로 분기하기
- Python elif를 사용하여 두 방향으로 분기하기
- Python for 반복문
- Python while 반복문
- Python break, continue로 반복문 제어하기
- Python 중첩루프
- Python FizzBuzz 문제
- Python 터틀 그래픽스로 그림 그리기
- Python 리스트와 튜플 응용하기
- Python 리스트와 튜플 응용하기 - 2
- Python 2차원 리스트 사용하기
- Python 문자열 응용하기
- Python 딕셔너리 응용하기
- Python 세트 사용하기
- Python 파일 사용하기
- Python 회문 판별과 N-gram 만들기
- Python 함수 사용하기
- Python 함수에서 위치 인수와 키워드 인수 사용하기
- Python 함수에서 재귀호출 사용하기
- Python 람다 표현식 사용하기
- Python 클로저 사용하기
- Python 클래스 사용하기
- Python 클래스 속성과 정적, 클래스 메서드 사용하기
- Python 클래스 상속 사용하기
- Python 두 점 사이의 거리 구하기
- Python 예외 처리 사용하기
- Python 이터레이터 사용하기
- Python 제너레이터 사용하기
- Python 코루틴 사용하기
- Python 데코레이터 사용하기
- Python 정규표현식 사용하기
- Python 모듈과 패키지 사용하기
- Python 모듈과 패키지 만들기
while 반복문
while 반복문은 조건식으로만 동작하며 반복할 코드 안에 조건식에 영향을 주는 변화식이 들어간다.여기서는 조건식 → 반복할 코드 및 변화식 → 조건식으로 순환하는 부분이 루프(loop)이다.
i = 0 # 초기식
while i < 100: # while 조건식
print('Hello, world!') # 반복할 코드
i += 1 # 변화식
while반복문은 초기식부터 시작해 조건식을 판별하고 이때 조건식이 참(True)이면 반복할 코드와 변화식을 함께 수행한다. 그리고 다시 조건식을 판별하여 참(True)이면 코드를 계속 반복하고, 거짓(False)이면 반복문을 끝낸 뒤 다음 코드를 실행한다.
1. while 반복문 사용하기
다음과 같이 whil반복문은 조건식을 지정하고 끝에 :(클론)을 붙여준다. 그리도 다음줄에 반복할 코드와 변화식을 넣어준다.
초기식
while 조건식:
반복할 코드
변화식
while 다음줄에 오는 코드는 반드시 들여쓰기를 해줘야한다. while 반복문으로 ‘Hello, world!’를 100번 출력해보자. 먼저 while 반복문에 변수 i에 0을 할당하고 조건식을 지정한다. 그리고 변화식을 정해줘야하는데 이때 조건식만 지정하고 변화식을 지정하지 않으면 무한루프가 되므로 변화식을 꼭 써야한다.
i = 0
while i < 100 :
print('Hello, world!')
i += 1 # i를 1씩 증가시킨다. i = i + 1
#출력
Hello, world!
Hello, world!
Hello, world!
Hello, world!
Hello, world!
Hello, world!
Hello, world!
.....
초깃값을 1부터 시작하기
초기 값을 1로 할당하여 ‘Hello, world!’를 100번 출력해 보자. i가 0부터라면 99까지 나오면 100번이기 때문에 i < 100 이지만 1부터기 때문에 i <=100으로 작성해 줘야한다.
i가 101이 되면 i <= 100은 거짓( False)이므로 반복문을 끝낸다.
i = 1
while i <= 100:
print('Hello, world!', i)
i += 1
#출력
Hello, world! 1
Hello, world! 2
Hello, world! 3
... (생략)
Hello, world! 99
Hello, world! 100
초깃값을 감소시키기
지금까지 초기값을 증가시키면서 루프를 실행했다. 반대로 초깃값을 크게주고, 변수를 감소시키면서 반복해 보자. 시작 값은 100이고 조건식을 i>0과 같이 지정해 1까지만 반복하도록 만들었다. 변화식은 i-=1로 지정해 변수의 값을 1씩 감소시킨다. i가 0이되면 i>0은 거짓(False)가 되기떄문에 반복이 종료된다.
i = 100
while i > 0:
print('Hello, world!', i)
i -= 1 # i = i-1
#출력
Hello, world! 100
Hello, world! 99
Hello, world! 98
... (생략)
Hello, world! 2
Hello, world! 1
입력한 횟수대로 반복하기
입력한 횟수대로 반복을 해보자. input입력값을 3으로 입력하고 반복을 실행하면 3번 반복하게된다. 반복문의 조건을 i < count로 지정해 count에 들어있는 값만큼 반복하도록 만들었다.
count = int(input('반복할 횟수를 입력하세요: '))
i = 0
while i < count: # i가 count보다 작을 때 반복
print('Hello, world!', i)
i += 1
# 출력
Hello, world! 0
Hello, world! 1
Hello, world! 2
초깃값을 받은 뒤 초깃값만큼 출력하게 만들었다. 여기서는 변수 i 대신 count를 바로 사용하므로 변화식을 count -= 1로 지정하여 반복할 때마다 count를 감소시키고 count가 0이 되면 반복문을 끝낸다.
count = int(input('반복할 횟수를 입력하세요: '))
while count > 0: # i가 count보다 작을 때 반복
print('Hello, world!', count)
count -= 1
# 출력
Hello, world! 3
Hello, world! 2
Hello, world! 1
2. 반복 횟수가 정해지지 않은 경우
지금까지 조건식에서 반복 횟수를 정한 뒤 변수 i를 증가시키거나 감소시켜 while 반복문을 사용했다. 하지만 while 반복문은 반복 횟수가 정해지지 않았을 때 주로 사용한다. 이번에는 난수를 생성해서 숫자에 따라 반복을 끝내 보자. 난수(random number)란 특정 주기로 반복되지 않으며 규칙 없이 무작위로 나열되는 숫자를 뜻한다.
파이썬에서 난수를 생성하려면 random 모듈이 필요하다. 모듈은 다음과 같이 import 키워드를 사용하여 가져올 수 있다.
- import 모듈
import random # random 모듈을 가져옴
이제 random.random() 으로 random모듈의 random함수를 호출해 보자.
random.random()
0.6308359530867019
random.random()
0.9884423768957599
random.random()
0.526192298540528
숫자를 알아보기 쉽도록 정수를 생성하는 random모듈의 randint함수를 사용해보자. randint 함수는 난수를 생성할 범위를 지정하며, 범위에 지정한 숫자도 난수에 포함된다.
random. randint(1, 6)
2
random. randint(1, 6)
4
random. randint(1, 6)
3
random. randint(1, 6)
5
random.randint(1, 6)과 while반복문을 사용해보자. 아래 코드는 1에서 6사이의 난수를 생성하고 3이 나오면 반복을 끝낸다.
i = 0
while i != 3: # i가 3이 아닐때 계속 반복
i = random.randint(1, 6)
print(i)
1
2
1
1
3 # 3이 나와 종료,
random.choice
random.choice 함수를 사용하면 시퀀스 객체에서 요소를 무작위로 선택할 수 있다. 다음은 1, 2, 3, 4, 5, 6이 들어있는 리스트에서 무작위로 숫자를 선택한다. random.choice 함수는 시퀀스 객체를 받으므로 리스트뿐만 아니라 튜플, range, 문자열 등을 넣어도 된다.
dice = [1, 2, 3, 4, 5, 6]
random.choice(dice)
1
random.choice(dice)
4
random.choice(dice)
3
3. while 반복문으로 무한 루프 만들기
while 반복문으로 무한 루프를 만들어 보자.
while True: # while에 True를 지정하면 무한 루프
print('Hello, world!')
# 출력
... (생략)
Hello, world!
Hello, world!
Hello, world!
Hello, world!
... (계속 반복)
while에 True대신 True로 취급하는 값을 사용해도 무한 루프로 동작한다.
while 1: # 0이 아닌 숫자는 True로 취급하여 무한 루프로 동작
print('Hello, world!')
while 'Hello': # 내용이 있는 문자열은 True로 취급하여 무한 루프로 동작
print('Hello, world!')
Subscribe to My Coding Practice Gym
Get the latest posts delivered right to your inbox