유튜브 스타트코딩 파이썬 기초 강의 듣다가 만난
예제문제가 너무 어려워서 글 하나 파서 팬다..
# 1. 랜덤번호를 뽑는 함수를 만들자
import random # 랜덤 값 뽑는 함수 쓰려면 무조건 (random 모듈 참고)
def getRandomNumber():
number = random.randint(1, 45)
return number # 값 출력하려면 print(getRandomNumber())
# 2. 랜덤번호 6개를 뽑자
import random
def getRandomNumber():
number = random.randint(1, 45)
return number
for i in range(6):
random_number = getRandomNumber()
print(random_number)
###############################################
# 하지만! 위 코드는 중복값이 발생할 수 있다.
# 2-2. 중복값이 발생하지 않는 6개를 뽑자
import random
def getRandomNumber():
number = random.randint(1, 45)
return number
lotto = []
for i in range(6):
random_number = getRandomNumber()
if random_number not in lotto: # 랜덤값이 리스트 lotto안에 없으면
lotto.append(random_number) # 얘도 좀 껴줘라~
print(lotto)
#############################################
# 하지만! 위 코드는 중복값은 리스트 lotto에 안 껴주고 딱 6번만 반복함
# 리스트 lotto가 5, 4, 3, ... 1개가 나올 수도 있어서 역시 틀림 ㅠ
# 결국 '중복값이 없는' '6개의 로또 번호'를 '나올 때 까지' 돌려야 하니까
# => while문으로 접근해야함
# 2-3. while을 사용해보았다.
import random
def getRandomNumber():
number = random.randint(1, 45)
return number
lotto = []
while True:
random_number = getRandomNumber()
if random_number not in lotto:
lotto.append(random_number)
print(lotto)
# 일케 되면, 리스트 lotto의 길이가 무한정으로 늘어나겠찌?
# while문을 끝낼 탈출 조건을 걸어줘야겠다.
# 2-4. if문 조건을 걸어 break조건을 만들어준다.
import random
def getRandomNumber():
number = random.randint(1, 45)
return number
lotto = []
count = 0 # 횟수를 지정해줄 변수
while True:
if count > 5: # 0, 1, 2, 3, 4, 5까지 총 6개의 숫자가 뽑히겠다.
break
random_number = getRandomNumber()
if random_number not in lotto:
lotto.append(random_number)
print(lotto)
###################################
# 근데 왜 또 에러가 나징? ㅠㅠ
# 이유는 얘도 탈출 조건이 충족이 안되고 계~ 속 lotto 리스트가 커지기만 함
import random
def getRandomNumber():
number = random.randint(1, 45)
return number # 1. 함수를 맹글어 줘요
lotto = []
count = 0
while True: # 중복이 없는 6개의 숫자가 나올 때 까지 계속 반복해라
if count > 5:
break # 6개의 중복 없는 숫자가 나오면 탈출 시켜줄게
random_number = getRandomNumber()
if random_number not in lotto: # 뽑은 랜덤숫자가 중복아니면
lotto.append(random_number) # 리스트에 좀 껴줘라
count += 1 # 탈출 시켜줘야하니까 다 충족했음 count하나 높여줘라
print(lotto)
뿌앵 어려웡
이거 하나를 이렇게 오래 잡고있을 일이냐 흑흑