AR삽질러

Python List 로또번호생성기 본문

Python

Python List 로또번호생성기

아랑팡팡 2023. 10. 8. 13:22
728x90

 

Python List 로또번호생성기

 

Python의 함수, 사용자입력, 조건문, 반복문, 리스트, 난수를 활용한 연습문제

1. 로또번호 생성기를 함수로 만든다.

2. 사용자에게 이름을 입력받는다.

3. "입력받은 이름"에게 금액을 입력받는다.

4. 입력받은 금액 만큼 자동로또 번호를 출력한다.

5. 당첨여부를 확인한다.

 

# lis, for, while, if elif else를 활용한
# 로또번호 생성기를 함수로 만드시오.
# 1. 사용자 이름을 입력받는다.
# 2. 사용자에게 금액을 입력받는다.
# 3. 금액만큼의 로또 번호를 자동번호로 뽑느다.
# 4. 컴퓨터의 랜덤 로또 당첨번호 한개를 뽑아 자신의 로또번호와 비교한다.

import random

def userLotto():
    userName = input("사용자의 이름을 입력해주세요: ")

    try:
        amount = int(input("금액을 입력해주세요(ex: 1000): "))
        if amount < 1000:
            print("최소 구매금액은 1000원입니다.")
            return
    except ValueError:
        print("구매금액이 올바르지 않습니다.")
        return

    lottoCount = amount // 1000
    lottoCom = random.sample(range(1, 46), 6)
    lottoCom.sort()
    bonusNumber = random.randint(1, 45)        
    print(userName, "님의 구매하신 자동로또 번호입니다.")
    print("\n이번 당첨번호는:", lottoCom, "/ 보너스 번호:", bonusNumber, "\n")

    for i in range(lottoCount):
        userNumber = random.sample(range(1, 46), 6)
        userNumber.sort()

        print(i+1, "번의 로또 번호: ", userNumber)

        matchNumbers = set(lottoCom) & set(userNumber)
        matchLotto = len(matchNumbers)
        if matchLotto == 6:
            print("축하합니다! 1등 당첨입니다!!")
        elif matchLotto == 5 and bonusNumber in userNumber:
            print("축하합니다! 2등 당첨입니다!!")
        elif matchLotto == 5:
            print("축하합니다! 3등 당첨입니다!!")
        elif matchLotto == 4:
            print("축하합니다! 4등 당첨입니다!!")
        elif matchLotto == 3:
            print("축하합니다! 5등 당첨입니다 (5000원)!!")
        else:
            print("꽝입니다..")

userLotto()

 

해설

0. 사용자 정보 입력받기

 - input함수로 사용자에게 이름과 금액을 입력는다. 금액은 1000원 이상이어야 하기 때문에 amount < 1000으로 예외처리를 해준다.

userName = input("사용자 이름을 입력해주세요 : ")
try:
	amoun = int(input("금액을 입력해주세요(ex: 1000) : "))
    if amount < 1000:
    	print("최소 구매 금액은 1000원입니다..")
        return
except ValueError:
	print("구매금액이 올바르지 않습니다..")
    return

 

1. 로또 번호 생성

 - random 을 사용해 랜덤한 로또 번호를 생성한다. random.sample() 함수는 컴퓨터의 당첨번호화 사용자의 로또 번호를 중복되자 않는 난수로 생성할 때 사용되고 bonusNumber 함수로 보너스 번호를 생성한다.

impot random

lottoCom = random.sample(range(1, 46), 6)
lottoCom.sort()
bonusNumber = random.randint(1, 45)

 

2. 로또 번호 출력

 - 생성된 로또 번호를 출력하고 사용자가 구매한 로또의 수에 따라 여러번 출력한다.

print(userName, "님의 구매하신 자동로또 번호입니다")
print("\n이번 당첨번호는:", lottoCom, "/ 보너스 번호:", bonusNumber, "\n")

 

3. 로또 번호 결과 출력

 - for 반복문을 이용해 사용자가 구매한 로또의 수만큼 반복하여 출력한다. 여기서 각각의 로또 번호화 랜덤하게 생성된 당첨번호를 비교해 몇 등에 당첨되었는지 출력한다.

for i in range(lottoCount):
    userNumber = random.sample(range(1, 46), 6)
    userNumber.sort()

    print(i+1, "번의 로또 번호: ", userNumber)

    matchNumbers = set(lottoCom) & set(userNumber)
    matchLotto = len(matchNumbers)
    if matchLotto == 6:
        print("축하합니다! 1등 당첨입니다!!")
    elif matchLotto == 5 and bonusNumber in userNumber:
        print("축하합니다! 2등 당첨입니다!!")
    elif matchLotto == 5:
        print("축하합니다! 3등 당첨입니다!!")
    elif matchLotto == 4:
        print("축하합니다! 4등 당첨입니다!!")
    elif matchLotto == 3:
        print("축하합니다! 5등 당첨입니다 (5000원)!!")
    else:
        print("꽝입니다..")

 

 

728x90
반응형
LIST