- 1단계는 파이썬 콘솔(명령 프롬프트)에서만 진행되는 프로그램이다.
- n명의 사람을 입력 받은 후, 그 중 랜덤하게 1명을 뽑아서 출력한다.
# <<<제비뽑기 프로그램>>>
# 1. n명의 사람을 입력 받기
# 2. 입력 받은 사람 중 한 명을 랜덤으로 뽑아서 출력
import random
import time
# 1 이상의 정수를 입력 받기
def get_num():
while True:
n = input("몇 명을 입력하시겠습니까? : ")
if n.isdigit():
n = int(n)
if n > 0:
return n
print("1 이상의 정수를 입력해 주세요.")
# 리스트 생성 함수
def get_list():
name_list = []
num = get_num()
for i in range(num):
name = input("%d번째 이름을 입력하세요 : " % (i + 1))
name_list.append(name)
print("#" * 50)
print("입력한 명단입니다.")
for i in range(num):
print("{}번 : {}".format(i + 1, name_list[i]))
print("#" * 50)
return name_list
# 리스트 내에서 한 개 추첨하는 함수
def get_one(name_list):
pick = random.randrange(len(name_list))
print("당첨자는!!!!!!!!!!!!??????????????")
for i in range(5):
print(5 - i)
time.sleep(1)
print("{}님 입니다!! 축하합니다!!!!!".format(name_list[pick]))
def start():
print("<<<<< 제비뽑기 >>>>>")
while True:
cmd = input("제비뽑기를 시작하려면 아무키나 누르세요(종료:q) : ")
if cmd == 'q':
break
# 1. n명의 사람을 입력 받기
name_list = get_list()
# 2. 입력 받은 사람 중 한 명을 랜덤으로 뽑아서 출력
while True:
get_one(name_list)
cmd = input("같은 명단으로 한 번 더 뽑으려면 아무키나 누르세요(새로시작:q) : ")
if cmd == 'q':
break
print('#' * 50)
if __name__ == '__main__':
start()
- 매우 초보적인 수준의 프로그램(이라고 부르기도 힘든 코드)이다.
- 매번 인원수와 이름을 입력해줄 수 있어서, 명단이 계속 바뀌어야 하는 경우에는 장점이 될 수 있다.
- 명단이 고정되어 있다면, 프로그램을 종료하지 않는 이상은 같은 명단으로 계속 추첨할 수 있다.
- 프로그램이 종료되면 명단이 사라지기 때문에, 나중에 같은 명단을 사용하려고 하면 다시 입력해야 하는 문제가 있다.
-> SQLite를 활용하여 명단을 저장해 놓고, 프로그램 시작 후 명단을 불러와서 바로 추첨할 수도 있고, SELECT, DELETE, UPDATE 로 명단을 수정하여 추첨을 할 수 있도록 만드는게 2단계 목표 (아래 수업 코드 활용)
https://powerstone829.tistory.com/10?category=1006501
[프로젝트형 IoT 서비스 개발 4회차 - Day10] 2022-02-09(수) 파이썬 기본8 - 파일, SQLite - 이진만 강사님
[1] 파일 입출력 (1) 파일 열기 : 변수 = open(파일경로, '모드') 모드 : r(읽기), w(쓰기), a(추가)... (2) 파일 읽기 : 변수.read() (3) 파일에 쓰기 : 변수.write(문자열) (4) 파일 닫기 : 변수.close(..
powerstone829.tistory.com
- 끝 -
'Programmer's Diary > Python' 카테고리의 다른 글
[Python] 2022-03-10 개인 Project _추첨 프로그램 단계적 개발_2단계 (0) | 2022.03.10 |
---|---|
[Python] 2022-02-15 개인 Project _ DB연습2_농구스코어DB(class 및 상속 활용) (0) | 2022.02.15 |
[Python] 2022-02-10 개인 Project _ DB연습_농구스코어DB (0) | 2022.02.12 |
[Python] 2022-02-08 개인 Project _ 로또 시뮬레이션 게임(수정1) (0) | 2022.02.12 |
[Python] 2022-02-07 개인 Project _ 로또 시뮬레이션 게임 (0) | 2022.02.12 |