问题描述
基本要求
(1) 设计投注的数据结构。
(2) 投注方式:键盘输入
(3) 设计求解中奖注的算法。
(4) 输出中奖注。
(5) 输入随机注,判断是否中奖,中几等奖。
import random
import time
def awm(p):
i = 0
while i <= 5:
k = random.randint(1, 22)
if k not in p:
p[i] = k
i += 1
def select(f):
print("请从1~22之间任意选取5个不同的整数作为投注号码:")
# 输入五个数,并排序
for i in range(5):
f[i] = int(input())
f.sort()
# 对输入值进行验证
while True:
k = True
# 判断范围是否在1~22之间
if any(num < 1 or num > 22 for num in f):
k = False
# 判断输入的五个数是否不同
if len(set(f)) < 5:
k = False
# 如果有不符合要求的值,则重新输入
if not k:
print("输入错误!请从1~22之间任意选取5个不同的整数作为投注号码:")
for i in range(5):
f[i] = int(input())
f.sort()
else:
break
def check(p, f):
count = 0
k = False
for i in range(5):
if f[i] in p:
count += 1
if f.count(p[5]) > 0:
k = True
# 根据规则判断中奖情况
if count == 5:
return 1
elif count == 4 and k:
return 2
elif count == 4 and not k:
return 3
elif count == 3:
return 4
elif count == 2:
return 5
else:
return 0
def win(k):
if k == 1:
print("一等奖!")
elif k == 2:
print("二等奖!")
elif k == 3:
print("三等奖!")
elif k == 4:
print("四等奖!")
elif k == 5:
print("五等奖!")
else:
print("未中奖!舒服了!")
def print_opt():
print("------------操作------------")
print("|抽奖, 请选择1 |")
print("|大奖设置, 请选择2 |")
print("|退出本期抽奖, 请选择0 |")
print("----------------------------")
def main():
f = [0] * 5
P = [0] * 6
Case = 1
print("*************************************第%d期抽奖**********************************" % Case)
print("选择1 开始")
print("选择0 退出")
y = int(input("选择:"))
while True:
if y == 0:
break
elif y == 1:
awm(P)
Case += 1
while True:
print_opt()
h = int(input("请选择:"))
if h == 0:
print("本期抽奖结束!!!")
print("大奖号为:", end="")
print(*P[:5], sep=" ")
print("特别号为:%d" % P[5])
break
elif h == 1:
select(f)
k = check(P, f)
win(k)
elif h == 2:
print("---------兑--------奖----------方-----------式----------")
print("|头等奖:5个号码与5个暗码完全相同 |")
print("|二等奖:4个号码与4个暗码完全相同,另一个号码与特别号相同|")
print("|三等奖:4个号码与4个暗码完全相同,另一个号码与特别号不同|")
print("|四等奖:3个号码与3个暗码完全相同 |")
print("|五等奖:2个号码与2个暗码完全相同 |")
print("|大奖号码将在本期结束公布 |")
print("---------------------------------------------------------")
print("结束,谢谢参与!!!")
if __name__ == '__main__':
main()
对这些代码进行修改,使其满足题目要求