根据程序生成的两位随机数(10-99)和用户输入的两位数判断用户的奖金。规则为:生成和输入的完全匹配输出“you win 1000”,数字完全匹配但顺序不对,输出“you win 500”,只匹配一个数字,输出“you win 100”,都不匹配输出“you win noting”。要求能过滤不合理的整数输入(不考虑字符的不合理输入)。
时间: 2024-03-06 18:51:38 浏览: 160
好的,我可以帮你解决这个问题。以下是代码实现:
```python
import random
# 生成随机数
num1 = random.randint(10, 99)
num2 = random.randint(10, 99)
# 判断用户输入是否合法
while True:
try:
guess = int(input('请输入两位数:'))
if guess < 10 or guess > 99:
raise ValueError('输入不合法,请重新输入')
break
except ValueError as e:
print(e)
# 判断是否中奖
if guess == num1 * 10 + num2 or guess == num2 * 10 + num1:
print('you win 1000')
elif guess % 10 == num1 % 10 or guess % 10 == num2 % 10 or guess // 10 == num1 // 10 or guess // 10 == num2 // 10:
print('you win 500')
elif guess % 10 == num1 % 10 or guess % 10 == num2 % 10 or guess // 10 == num1 // 10 or guess // 10 == num2 // 10:
print('you win 100')
else:
print('you win nothing')
```
解释一下:首先生成两个随机数num1和num2,然后在while循环中判断用户输入是否合法,如果不合法则继续循环,直到输入合法为止。接着根据题目的规则,分别判断用户是否中奖,输出相应的奖金。注意判断是否匹配数字的时候,需要将两个随机数的个位和十位分别进行比较。
阅读全文