파이썬 기초: 로또 번호 생성

김영채 (Kevin)·2020년 4월 19일
0

Python

목록 보기
4/4
post-thumbnail

이번에는 로또 번호 생성과 관련된 문제이다. 이번 시간에는 random 함수에 대해서 간략하게 배워 random.randint() 함수를 이용하여 로또 번호 생성 문제를 풀 수 있게 되었다.

문제의 실행 결과는 아래와 같다.

로또 번호를 몇 장이건 구매할 수 있다. 단, 각 로또번호에 대한 Index 번호가 존재해야 한다. 보통 수업에서 for문을 사용하면 i=0부터 시작하지만,일련 번호를 1부터 시작해야해서 for문에서의 제어 변수를 i=1부터 설정해야 했다.

로또 번호는 1~45 사이의 숫자이어야 하기 때문에 random.randint(1,45) 로 작성하면 됐다.

각 행마다 랜덤한 번호를 6개 생성해야 하기 때문에 이는 for문을 6번 돌리는 것으로 해결하면 된다.

우선 대강적인 틀이 잡히고 손으로 먼저 코딩을 해보았다.

최종 코드는 아니지만 대강 틀은 비슷하다. 확실히 드는 생각이, 문제를 보고 바로 코딩을 시작하기 보다는, 이렇게 손코딩을 먼저 하는게 훨씬 좋다는 생각이 든다.

그럼 아래 최종 코드를 보자:

import random

while(True):
    lottoQuantity = int(input("로또를 몇장 구매하시겠습니까? "))
    if lottoQuantity <= 0:
        print("종료합니다.")
        break
    while lottoQuantity>0:
        print("랜덤하게 생성된 로또 번호입니다.")
        for i in range(1,lottoQuantity+1):
            print("[%d]: " % i, end=" ")
            for j in range(6):
                print("{0:3d}".format(random.randint(1,45)), end=" ")
            print()
        break

import random을 여기서 처음 배웠다. C언어에서 #include <stdio.h> 또는 #include <math.h> 등을 하는 것과 같은 기능을 수행한다.

6을 입력했을 때 위와 같이 출력이 된다. 출력 자릿수를 맞춰야지 깔끔하게 보이기 때문에 아래와 같은 형식으로 출력문을 작성했다.

print("{0:3d}".format(random.randint(1,45)), end=" ")
profile
맛있는 iOS 프로그래밍

0개의 댓글