Python

[Python] 함수(Function)를 이용한 간단한 로또(Lotto)추첨 프로그램

구루싸 2019. 8. 27. 23:45
반응형
SMALL

이번엔 파이썬(Python)의 함수(Function)에 대해 알아볼겸

간단한 로또(Lotto) 추첨 프로그램을 작성해보겠습니다(로또 당첨되고 싶드아-_-)

import random //임의의 숫자를 뽑기위해 이용

def getNumber() : //반환값이 있는 함수 정의, 파라미터는 없음
	return random.randrange(1, 46)
/**************************************************************************************
참고 : 
1. 파이썬(Python)의 함수(Function) 매개변수(Parameter)
def getNumber(para1, para2, ...)과 같이 파라미터 여러 개 정의 가능
def getNumber(*para)과 같이 선언하면 매개변수(Parameter)의 수와 관계없이 튜플(Tuple) 형식으로 넘어옴
def getNumber(**para)과 같이 선언하면 매개변수(Parameter)가 딕셔너리(Dictionary) 형식으로 넘어옴
2. 함수(Function)의 반환값
함수(Function) 내에 return 구문이 존재하면 반환값이 존재하고 없으면 반환값이 없다
**************************************************************************************/

lotto = [] //로또번호 6개를 저장하기 위한 리스트(List) 선언

print("Start Lotto!!\n")

while True : //로또번호 6개가 다 뽑힐 때까지 무한루프
	
	if len(lotto) >= 6 : //로또번호 6개가 다 뽑혔으면 종료
		break
	
	num = getNumber() //위에 선언한 함수 호출 반환값이 있는 함수이므로 num에 반환값을 저장

	if lotto.count(num) == 0 : //로또번호를 저장하는 리스트 lotto에 해당 번호가 있는지 체크
		lotto.append(num) //없을 경우 저장

print "Winning numbers : ",
lotto.sort() //로또번호를 오름차순으로 정렬한 후 출력
for i in range(0, len(lotto)) :
	print "%d\t" % lotto[i],
print ""

함수(Function)는 학창 시절 수학 시간에 배운 함수(Function)의 개념과 동일합니다

input  Function() → output

함수(Function)에 대한 자세한 설명보단 사용법을 간단히 위의 코드에 적었습니다

사실 함수(Function)를 왜 사용하는지가 중요합니다

프로그램을 작성하다보면 동일한 일을 수행하는 코드가 존재합니다

그런데 이것을 일일이 매번 작성한다면 코드도 길어지고 지저분해집니다

그런데 만약 그 일을 수행하는 녀석이 있고 일을 다 넘긴다면?? 분명 간결해질 것입니다

물론 일을 하는 녀석은 바쁘겠죠..-_-

이런걸 재사용성이라고 하는데 사실 이런 용어를 아는거보다

왜 이렇게 프로그램을 작성해야 좋은지를 이해해하는 것이 중요할 것 같습니다

 

 자 이런 관점에서 나아가 파이썬(Python)의 모듈(Module)에 대해 알아보겠습니다

모듈(Module)은 앞서 이야기한 것의 연장선입니다

만약 위에서 작성한 로또 추첨 프로그램에서

getNumber() 함수가 같은 a.py 에 없고 다른 b.py에 있다면??

저 위의 프로그램은 getNumber() 함수를 찾지 못하고 예외가 발생할 것입니다

자 그럼 b.py에 있는 getNumber() 함수를 a.py에 다시 작성해야할까요??

당연히 NO!!

이럴 때 사용하는 것은 위의 코드에서도 보입니다만 import 예약어입니다

우린 getNumber() 함수를 쓰기 위해 import b 를 a.py 에 추가하고 쓰면됩니다

b.getNumber() 이런식으로... 그런데 앞에 b.을 쓰고 싶지 않다면

from b import getNumber 혹은 from b import * 를 추가하면 되겠습니다

b.py가 모듈(Module)이 된 것입니다-_-

※ 참고  

추가로 파이썬(Python)의 모듈(Module)은 세가지로 나뉩니다

모듈(Module) 설명
표준 모듈 파이썬(Python)에서 제공하는 모듈(Module)
사용자 정의 모듈 사용자가 직접 만들어서 사용하는 모듈(Module)
서드 파티 모듈 파이썬(Python)이 아닌 다른 회사나 기관에서 제공하는 모듈(Module)

 오늘은 여기까지-_-

반응형
LIST