본문 바로가기
IT지식/Python

파이썬 while의 모든것

by 모두의 향연 2021. 10. 23.
728x90
반응형
1. Hello world! 100번 출력하기
i=0   # 초기식
while i <100:    # while문 조건식
    print('Hello wolrd!')
    i += 1   # 변화식

while문에서는 초기식, 조건식, 변화식으로 이루어진다.

초기식에서 시작하여 조건을 확인하고 맞으면(True) print문과 변화식을 실행한다.

i가 100 미만일때까지 반복하고 100이 되면 반복을 끝낸다.

출처: 코딩도장

조건식→반복할 코드 및 변화식→조건식 ~~ 이런 식으로 순화하는 루프 구조

 

2. while문
  • 초기식
    while 조건식:
         반복할 코드
         변화식

while 조건식 다음에는 무조건 ':(콜론)'

while문 다음 줄에는 반드시 들여 쓰기

 

 

3. 초깃값을 감소시키기

지금까지는 초깃값을 증가시키면서 루프를 반복했는데, 반대로 초깃값을 크게 주고 감소시키는 방법을 알아보자. 

i=100
while i>0:
    print('Hello wolrd!')
    i -= 1

초깃값을 100으로 시작하게 하고, 조건식을 0보다 크게 잡는다.

변화식을 i-=1로 잡아 1씩 감소하게 둔다. 

그럼 i가 0이 되면 Flase로 반복문을 끝낸다.

 

 

4. 입력한 횟수만큼 반복하기
n = int(input('반복할 횟수를 입력하세요.'))
i = 0
while i < n:
    print('안녕', i)
    i += 1


출력:
반복할 횟수를 입력하세요. 5
안녕 0
안녕 1
안녕 2
안녕 3
안녕 4

 

 

5. 초깃값을 받은 뒤 초깃값만큼 출력하기
n = int(input('반복할 횟수를 입력하세요.'))

while 0 < n:
    print('안녕', n)
    n -= 1


출력:
반복할 횟수를 입력하세요. 3
안녕 3
안녕 2
안녕 1

 

 

6. 난수 생성하여 초깃값 없이 반복하기(ramdom모듈-random(), randint())

*난수(亂數): 정의된 범위 내에서 무작위로 추출된 수를 일컫는다. 

주사위 사진

원래 while문은 반복 횟수가 정해지지 않을 때 사용한다. 

난수를 생성해서 while문을 써보도록 하자.

  • import 모듈

random모듈에서 random함수를 호출해보자.

  • random.random(a)
>>> import random
>>> random.random()
0.62436674062417
>>> random.random()
0.5313903194478214
>>> random.random()
0.6865509394592064

random.random()을 실행할 때마다 다른 실수가 출력된다. 바로 이 숫자가 난수이다.

 

그럼 실수 말고 정수가 출력되게 하는 함수는?

  • random.randint(a, b)

randint함수는 난수를 생성할 범위를 지정하며, 범위를 지정한 숫자도 난수에 포함된다.

>>> random.randint(1,6)
1
>>> random.randint(1,6)
4
>>> random.randint(1,6)
3
>>> random.randint(1,6)
3
>>> random.randint(1,6)
3
>>> random.randint(1,6)
4

1에서 6까지 난수가 생성된다. 

 

그럼 while문을 써서 3이 나올 때까지 주사위를 계속 건지게 해 보자.

import random

i=0
while i!= 3:
    i = random.randint(1,6)
    print(i)

출력:
4
2
2
2
5
1
5
6
3

 

7. 시퀀스 객체만 받는 random.choice() 함수
>>> import random
>>> ch=[10,20,30,40,50]
>>> random.choice(ch)
10
>>> random.choice(ch)
20
>>> random.choice(ch)
10
>>> random.choice(ch)
50

random.choice함수는 시퀀스 객체만 받으므로 리스트, 튜플, 문자열, range 등을 넣어도 된다.

 

 

8. while무한루프
  • while True:  (False안돼요, None안돼요)
  • while 1: 
  • while 1.1:
  • while not 0:
  • while 해당 문자열: 
while True:
    print('그만 멈춰!!!')

그만 멈춰!!!
그만 멈춰!!!
     :
     :
(미친 듯이 반복되는 중..)

while에 조건식 대신에 True를 지정하면 무한히 반복되는 무한 루프가 만들어진다.

조건식이 항상 참(True)이므로 변화식도 필요 없다.

무한 루프를 끝내고 싶으면 'Ctrl+C'를 입력하면 된다.

728x90
반응형