Python示例: 伪双色球系统

import random

def create():
randomArr = []

while len(randomArr) < 6:
randNumber = random.randint(1,33)
if not randNumber in randomArr:
randomArr.append(randNumber)
randomArr.append(random.randint(1,16))
return randomArr

def getUserInput():
userInput = []
while len(userInput) < 6:
red_input = input("请输入第%d个红色球号码: " % (len(userInput)+1))
if red_input.isdigit():
red_input = int(red_input)
if red_input >=1 and red_input <= 33:
if not red_input in userInput:
userInput.append(red_input)
else:
print("这个号码已经被选过了")
else:
print("请输入1-33之间的红球号码")
else:
print("请输入正确的号码")

while len(userInput) < 7:
blue_input = input("请输入蓝色球号码: ")
if blue_input.isdigit():
blue_input = int(blue_input)
if blue_input >=1 and blue_input <= 16:
userInput.append(blue_input)
else:
print("请输入1-16之间的蓝球号码")
else:
print("请输入正确的号码")
return userInput

def getRedCount(arr,userInput):
redCount = 0
for i in range(len(arr)):
if arr[i] == userInput[i]:
redCount += 1
return redCount

def getBlueCount(arr,userInput):
blueCount = 0
if arr[len(arr)-1] == userInput[len(userInput)-1]:
blueCount = 1
return blueCount

def getResult(redCount, blueCount):
if(redCount == 6 and blueCount == 1):
return "一等奖,中奖1000万"
elif(redCount == 6 and blueCount == 0):
return "二等奖,中奖500万"
elif(redCount == 5 and blueCount == 1):
return "三等奖,中奖3000"
elif((redCount == 5 and blueCount == 0) or (redCount == 4 and blueCount == 1)):
return "四等奖,中奖200元"
elif((redCount == 4 and blueCount == 0) or (redCount == 3 and blueCount == 1) or (redCount == 2 and blueCount == 1)):
return "五等奖,中奖10元"
elif((redCount == 1 and blueCount == 0) or blueCount == 1):
return "六等奖,中奖5元"


return "未中奖"

#创建中奖号码
arrNumber = create()

#得到用户输入
userInput = getUserInput()

#计算红球中奖个数
redCount = getRedCount(arrNumber,userInput)
print("红球中奖个数: ",redCount)

#计算蓝球中奖个数
blueCount = getBlueCount(arrNumber,userInput)
print("蓝球中奖个数: ",blueCount)

#最终结果
result = getResult(redCount, blueCount)

print("中奖号码为",arrNumber)
print("你输入的号码为",userInput)
print(result)