프로그래밍 언어 복습/파이썬
#24 파이썬 로또 10개 만들기
사재원 교수
2022. 5. 12. 16:57
#로또 10개 만들기
.
.
.
.
.
.
.
.
import random
data = []
for _ in range(10) : #10번 반복
lotto = []
c = 0
while c < 6 : #로또 번호 6개 만들기
r = random.randint(1,45)
if r not in lotto : #로또 번호 중복 체크하기
lotto.append(r) #중복이 아니라면 lotto에 업헨드해주기
c += 1
else :
continue
data.append(lotto) #로또 번호6개 묶음을 data에 업헨드하기
for i in data :
print(i,len(i))
설명은 코드안에 주석처리로 다 달아놓았는데 여기서 새로운 개념 2가지가 나온다.
- continue : 이것은 break랑은 다르다. break는 그냥 거기서 프로그램을 종료시킨다면 이것은 프로그램이 다시 처음부터 돌아가게끔 하는 것이다. 중복을 체크하고 중복하지 않을 경우에는 lotto에 그대로 업헨드가 되지만 숫자가 중복할 경우에는 continue로 while문 처음으로 돌아가게 된다. 즉 c가 +=1 이되지 않은 채로 올라가게 된다.
- not in : 위 코드를 보았을때 if r not in lotto 는 한국말로 만약 r이 lotto에 없다면 ~~~ 이라고 해석할수있다.
반대로 if r in lotto 은 만약 r이 lotto에 있다면 ~~~ 이라고 볼수 있겠다. r은 계속해서 1~45사이에 랜덤값을 만들텐데 로또 번호는 겹치면 안되므로 중복되지 않는 값만을 업헨드해줘야하기에 not in과 continue를 넣어서 프로그램을 만들었다.
로또 (번호 6개) 10개가 잘 출력된 것을 볼수있다.
번호가 6개가 나온게 맞는지 확인하기 위해 len함수를 이용해 번호개수도 함께 출력해보았다.