본문 바로가기

기술 높이기/코딩

파이썬 반복문 while문(+랜덤 로또 번호 생성)

반응형

파이썬 반복문 while문

파이썬 while문 사용법

while문은 for문과 마찬가지로 파이썬에서 반복할 때 사용하는 문법으로 for문과 차이가 있다면 while문은 조건이 거짓이 될 때까지 계속 반복한다는 것이다. 위 코드를 보면 while a > 0 : 으로 표현되어 있는데 while 뒤에 있는 'a > 0'이 조건이 되고, 콜론( : ) 아래에 반복할 코드를 넣으면 된다. 

 

변수 a는 '10'이 할당되어 있고 조건에서 a 값은 0보다 커서 참이 되어 while문안에 코드가 실행된다. 코드는 변수 a의 값을 출력하고 기존 a 값에 1을 뺀 후 다시 a에 할당하면서 9가 된다. while문의 조건으로 돌아오면  변수 a는 0보다 커서 안에 있는 코드가 다시 실행된다. 변수 a 값이 1이 출연된 이후 a는 0 값이 할당된다. 0 값이 0보다 크다는 조건이 말이 되지 않기에 while문의 반복은 종료되었다. 

 

 

 

이번 while문에서 조건은 b 값이 a라는 리스트 안에 있는 값이 맞는지 확인하는 것이다. 해당 조건이 참이면 b를 출력하고 기존 b 값에 1을 더해서 b에 다시 할당하는 반복문이다. b 값은 1을 출력하고 코드 실행을 통해서 1씩 값을 증가되었다. b 값이 6이 되었지만, 리스트 a 안에 있는 값이 아니기에 조건이 거짓이 되어 while문의 반복은 종료되었다.  

 

 

 

while문으로 랜덤 로또 번호 생성 1

1. import random  # 랜덤이라는 모듈을 가져온다.

3. ls = []             # 빈 리스트를 만든다.

5. while len(ls) < 6 : # while문 조건에 len(변수) 함수를 사용했는데 len 함수는 변수에 들어 있는 데이터의

                          # 개수, 문자열 길이를 의미한다. 리스트 ls를 len()함수 안에 변수로 넣었는데 데이터가

                          # 없어서 len(ls)는 0이다.

6. num = random.randint(1, 45) # num 변수에 1부터 45 사이에서 무작위로 선정된 숫자를 할당한다. 

7. if num not in ls: # if라는 조건문인데 if문도 조건이 참이면 안에 있는 코드가 실행된다. 

                         # 변수 num에 들어있는 숫자가 리스트 ls 안에 없다면 조건이 참이 되어 코드가 실행된

                         # 다. 만약 num에 들어있는 숫자가 리스트 ls 안에 있다면 조건이 거짓이되어 코드가

                         #  실행되지 않고 다시 while 문이 실행된다. (숫자의 중복이 발생하지 않는다.)

8. ls.append(num)  # 리스트 ls 에 num에 할당된 값을 넣는다. 

10. ls.sort()           # 리스트의 값을 오름차순으로 정렬한다.

11. print(ls[::])        # 1부터 45까지 숫자 중 중복 없이 선택된 6개의 숫자를 출력한다. 

                         # print(ls)를 사용하는 것이 더 간편하다. 

 

 

 

while문으로 랜덤 로또 번호 생성 2

1. import random   # 랜덤이라는 모듈을 가져온다.

3. a = set()            # set()은 집합을 의미하는 데 중복을 허용하지 않고, 순서가 없다. 

5. while len(a) < 6 : # 변수 a에 숫자 데이터가 6개보다 작으면 참, 넘으면 거짓이 된다.

6. a.add(random.randint(1, 45)) # 1부터 45 사이에 무작위 숫자가 집합 a에 들어간다.

8 print(a)              # 변수 a에 속해있는 데이터를 출력하는데 집합이 중복 없는 데이터가 순서 없이 들어

                         # 가기에 오름차순으로 정렬하는 sort()를 사용할 수 없다. 그래서 뒤죽박죽으로 숫자가

                         # 출력된다. 

반응형