티스토리 뷰

안녕하세요 탐구소년입니다.

주말이지만 오전에는 일을 좀 했고, 오후가 되서야 심신에 휴식을 좀 취하고 있었습니다. 그러다 멍하니 앉아있는게 싫증나서 심심풀이로 로또번호 자동 생성 프로그램을 작성해보았습니다(도대체 왜..?). 로또 생성 예제는 흔하디 흔하고 무척 쉬운 프로그램이긴 하지만, 같은 동작을 여러가지 언어로 작성해보는 것은 재미있는 일인 것 같아서 나름 의미가 있다고 보입니다.

 

프로그램의 동작 방식은, 원하는 개수만큼을 숫자로 직접 입력하면 거기에 맞춰 로또번호가 생성되어 콘솔에 출력되는 식입니다. 코드와 실행결과를 아래에 남겨두겠습니다. 

 

 

코드(lotto.py)

 

'''
로또 번호 자동 생성 프로그램
by 탐구소년
'''
import random


cnt = 0

# 숫자 외 다른 것을 입력할 시엔 예외 처리!
try:

    cnt = int(input("번호를 몇 개 생성할까요 : "))
except ValueError :
    print("숫자만 입력할 수 있습니다.")

# 로또 번호 생성
for i in range(cnt) :

    lotto = random.sample(range(1, 46), 6) # 숫자 여섯개 고르기
    lotto.sort() # 리스트를 오름차순으로 정렬하기
    print(lotto)

코드를 보면 첫 번째 줄에서는 random 이라는 이름의 모듈을 임포트하고 있습니다. 이 모듈은 이름에서 알 수 있듯 임의로 데이터를 생성해주는 기능을 제공하는 모듈입니다. 

 

프로그램이 가장 먼저 하는 일은 cnt 변수에 input() 함수로 숫자를 받아 자동 생성 번호를 몇 개나 생성할지 결정하는 일입니다. 이때 숫자가 아닌 문자열이나 기호를 입력하게 되면 ValueError 예외가 발생하여 예외처리 구문 except로 넘어갑니다(그리고 번호 생성은 안 됩니다).

 

제대로 된 숫자를 입력했을 시에는, cnt에 저장된 숫자만큼의 로또 번호를 생성하게 됩니다. 여기서 random 모듈의 메소드인 sample이 사용되는데요. 이 함수는 첫 번째 인자로 범위를, 두 번째 인자로 원하는 개수를 입력하면 그에 맞게 랜덤 값으로 이루어진 리스트를 제공합니다. 

 

=> random.sample(범위, 개수) 의 결과는 [리스트]이다!

 

아래는 프로그램 실행 후 숫자 3을 입력했을 때의 결과입니다.

 

 

다음은 문자열을 입력했을 때의 결과입니다. 

 

 

이상입니다. 너무 간단하네요.. 머쓱키토;

다른 모듈 예제도 이것저것 작성해 올리고싶긴 한데 뭘 하면 좋을지 잘 모르겠어서 생각 좀 해봐야겠습니다.

 

 

댓글
공지사항