flowchart
1. 생성수를 저장할수 있는 저장소 생성. (리스트)
2. 저장소의 멤버개수가 6인지에 대해서 확인하고 6미만이면 동작 반복.
2-1. 랜덤한 정수 생성(1~45)
2-2. 생성된 수가 저장소(리스트)에 없으면 저장소 (리스트)에 저장.
2-3. 생성된 수가 저장소(리스트)에 있는지 여부 확인
2-4. 2번으로 돌아가서 반복 진행.
Random.random()
0.0~1.0사이의 실수(float)를 반환합니다.
random.randint(1,100)
1부터 100까지 수중에 정수를 리턴합니다. 즉 마지막 100까지 포함합니다.
random.randrange(0,10,3)
1부터 10미만 3의 배수를 반환합니다.
random.choice([1,2,3,4,5,6,7])
[1,2,3,4,5,6,7]중에 한 글자를 리턴합니다.
random.sample(range(1,46),6)
1이상 46미만중 6개 값을 리스트 형식으로 반환 받습니다. 즉, sample 함수는 중복 없이 처리해 주기 때문에 로또 번호 생성에 최적화 입니다.
List = [1,2,3,4,5,6,7,8]
Random.shuffle(List)
[1,2,3,4,5,6,7,8]의 숫자들을 가지는 List 섞어서 배열합니다. 별도의 데이터 반환 값이 없습니다.
flowchart 순서대로, random 숫자를 list에 한개씩추가.
중복숫자는, list에 추가하지 않음.
import random
LottoNumber = []
randcnt = 0
while len(LottoNumber) < 6 :
Value = random.randint(1,45)
randcnt= randcnt + 1
if Value not in LottoNumber:
LottoNumber.append(Value)
else :
print("중복 번호:",Value, "횟수:", randcnt)
print(LottoNumber)
print(randcnt)
결과 :
중복 번호: 2 횟수: 6
중복 번호: 26 횟수: 7
[45, 5, 2, 34, 26, 12]
8
간단히 하려면,
import random
import datetime
today=datetime.date.today()
print(today,"로또 예상번호는" ,random.sample(range(1,46),6), "입니다.")
결과 :
2021-07-07 로또 예상번호는 [3, 22, 10, 36, 25, 15] 입니다.
random 참조 : https://appia.tistory.com/93?category=849954
datetime 참조 : https://www.daleseo.com/python-datetime/
'일 > Python' 카테고리의 다른 글
Python) 학습 - 기본3일차(자료구조: list, tuple, dictionary, set) (1) | 2022.12.21 |
---|---|
Python) 학습 - 기본2일차(if, for, while) (0) | 2022.12.21 |
Python) 학습 - 기본1일차(variable, input, output) (0) | 2022.12.21 |
파이썬(python) - exe 실행파일 만들기 & Error 처리 (0) | 2021.07.09 |
파이썬(python) - win32com 사용하여, excel file 읽기, 저장, csv로 저장하기 (0) | 2021.07.07 |