파이썬으로 만들어본 로또 번호 추출 프로그램.
시작번호와 종료번호를 입력후,
랜덤 생성에서 제외하고자 하는 번호를 입력한 뒤 생성 버튼을 누르면 됩니다.
출근길에 종종 로또 복권을 구매하는데,
그런 생각이 들었습니다. 제외 번호를 넣고 범위를 주고 자동 생성해보면 어떨까?
그렇게 생각해서 시작~종료 번호를 넣고,
제외할 번호를 넣는 칸을 만든뒤 1장분량을 생성하는 코드를 만들었습니다.
UI : Qt Designer로 생성.
파이썬 코드.
import sys
import os
import random
from PyQt5.QtWidgets import *
from PyQt5 import uic
#form_class = uic.loadUiType("exNum.ui")[0]
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
form = resource_path('exNum.ui')
form_class = uic.loadUiType(form)[0]
class WindowClass(QMainWindow, form_class) :
global btn_ck
def __init__(self) :
super().__init__()
self.setupUi(self)
# self.lineEdit_in.textChanged.connect(self.lineCtr)
#button 클리거
#self.makeNum.clicked.connect(self.makeNum_func)
self.makeNum.clicked.connect(self.makeNum_multiple)
#아래는 함수 정의
def makeNum_multiple(self):
self.resultNum_1.setText(self.makeNum_func())
self.resultNum_2.setText(self.makeNum_func())
self.resultNum_3.setText(self.makeNum_func())
self.resultNum_4.setText(self.makeNum_func())
self.resultNum_5.setText(self.makeNum_func())
def makeNum_func(self):
strNum = self.strNum.text()
endNum = self.endNum.text()
xitNum = self.xitNum.text()
numList = []
#추출 대상 설정
for i in range(int(strNum), int(endNum)+1):
numList.append(i)
#중복 제거 대상 만들기 set
if xitNum == "":
print("제외값없음")
else:
setXitNum = set(xitNum)
if "," in setXitNum:
setXitNum.remove(",")
print(setXitNum)
else:
print(setXitNum)
setXitNumList = list(setXitNum)
#중복 제거대상 제거 시작
#for i in setXitNumList:
for i in range(len(setXitNumList)+1):
values = i
print("삭제대상", values)
if int(values) in numList:
numList.remove(int(values))
print("제거완료 :",numList)
randomList = random.sample(numList,6)
print(randomList)
print("결과입력시작")
#self.setValues_func(randomList)
resultValues = str(randomList)
resultValues.strip("[")
resultValues.strip("]")
return resultValues
#self.resultNum_1.setText(resultValues)
#print(self.lineEdit_in.text())
if __name__ == "__main__" :
# QApplication : 프로그램을 실행시켜주는 클래스
app = QApplication(sys.argv)
# WindowClass의 인스턴스 생성
myWindow = WindowClass()
# 프로그램 화면을 보여주는 코드
myWindow.show()
# 프로그램을 이벤트루프로 진입시키는(프로그램을 작동시키는) 코드
app.exec_()
https://github.com/Seong-dong/automation_office/tree/main/lotto_generator
728x90
'프로그래밍 학습 > 자체제작' 카테고리의 다른 글
VBA | Prepare Statement _ 자체제작 (0) | 2022.07.08 |
---|