728x90
반응형
def sel(num, listname ): 랜덤으로 추첨하기 함수만들기.
인원과 전체 인원의 이름을 입력받아
리스트에 저장하고,
함수 sel을 호출한다.
함수는 각 사람에게 0원, 5천원, 7천원, 1만원, 2만원 중 한 항목을 매칭하여
결과 리스트는 튜플로 구성하여
다음과 같이 출력한다.
이 때 parameter num 값이 양의 정수인 경우만 실행한다.
그렇게 생성된 리스트 중에서 최고금액인 2만원을 받은 사람을 찾아 이름을 출력한다.
import random # 랜덤 패키지 사용
money = ['0월', '5천원', '7천원', '1만원', '2만원'] # 각 사람에게 매칭할 금액
def sel(num, listname): # sel 함수 선언. 인수는 인원수, 이름 리스트
rtn = [] # 인원에 금액을 매칭한 결과 변수(리스트)
for i in range(len(listname)): # 인원 만큼 반복. 여기에 n(인원수)를 사용해야 하나 len()함수로 이름수로 사용하면 됨
rtn.append(random.randint(0,len(money)-1)) # 램덤하게 0~money 원소수-1 의 수를 선택.이는 금액 리스트의 인덱스로 사용
t = [(listname[i], money[idx]) for i, idx in enumerate(rtn)] # 이름과 금액을 튜플로 만들기. 위에서 만든 인덱스(rtn)으로 이름과 금액 매칭
print(t) # [('석민', '1만원'), ('광현', '7천원')]
for i in range(len(t)): # 출력을 위한 반복문. 만들어진 튜플 만큼 반복
if t[i][1] == money[-1]: # 현재 튜플의 금액값이 2만원(money의 제일 뒤 금액)과 같으면
print(f"최고금액 사람 : {t[i]}") # 출력
n = int(input('인원수를 입력하세요 :')) # 인원수 입력 받음. 정수로 사용할 것이라 int 함수로 정수 변환.
name_tmp = input("이름을 입력하세요(예:철수,민지) : ") # 이름들을 입력 받음. 지혜,민지,광현,석민,요한,주용
if n%2 == 0: # 양의 정수일때만 실행하는 조건
name_lst = name_tmp.split(',') # 입력 받은 이름들은 '.'로 분리해서 리스트를 만듬
sel(n, name_lst) # 함수 실행. 이때 인수를 인원수, 이름 리스트를 넘겨 줌
결과
인원수를 입력하세요 :4
이름을 입력하세요(예:철수,민지) : 지혜,민지,광현,석민
[('지혜', '7천원'), ('민지', '1만원'), ('광현', '2만원'), ('석민', '1만원')]
최고금액 사람 : ('광현', '2만원')
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 엘리베이터 층 이동 만들기 (1) | 2022.11.20 |
---|---|
[파이썬] 문제 : tkinter 섭씨/화씨 변환기 (0) | 2022.11.18 |
[파이썬] 문제 : 숫자 맞추기 게임. (0) | 2022.11.18 |
[파이썬] 문제 : 키워드 가변인자 인수명 반복 출력 (0) | 2022.11.18 |
[파이썬] 문제 : 주사위 100번 했을 때 1, 2, 3, 4, 5, 6이 나오는 횟수 (0) | 2022.11.18 |
댓글