파이썬 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()를 사용할 수 없다. 그래서 뒤죽박죽으로 숫자가
# 출력된다.
'기술 높이기 > 코딩' 카테고리의 다른 글
파이썬 반복문 for문 사용법(이중 for문, 구구단) (0) | 2020.10.15 |
---|