编写math_game.py脚本,实现以下目标:
- 随机生成两个100以内的数字
- 随机选择加法或是减法
- 总是使用大的数字减去小的数字
- 如果用户答错三次,程序给出正确答案
from random import randint, choice
def exam(): counter = 0 while counter < 3: nums = [randint(1, 100) for i in range(2)] nums.sort(reverse=True) op = choice('+-') if op == '-': result = nums[0] - nums[1] else: result = nums[0] + nums[1] prompt = '%s %s %s =' % (nums[0], op, nums[1]) answer = int(input(prompt)) if answer == result: print('very Good') else: print('\033[31;1msorry,You are wrong\033[0m') counter += 1 def main(): while True: yn = input('Continue:/y/n ?').strip()[0] # 去除空白 然后取第一位 if yn in 'nN': print('\nBye-bye') break exam() if __name__ == '__main__': main()from random import randint, choice
def add(x,y):
return x-y
def sum(x,y):
return x+y
def exam():
cmds = {'-':add,'+':sum}
nums = [randint(1, 100) for i in range(2)]
nums.sort(reverse=True)
op = choice('+-')
result = cmds[op](*nums)
# print(*nums)
# if op == '-':
# result = add(nums[0],nums[1])
# else:
# result = sum(nums[0],nums[1])
prompt = '%s %s %s =' % (nums[0], op, nums[1])
counter = 0
while counter < 3:
try:
answer = int(input(prompt))
except:
print()
continue
if answer ==result :
print('very Good')
break
else:
print('\033[31;1msorry,You are wrong\033[0m')
counter += 1
else:
print('%s %s' %(prompt,result))
def main():
while True:
exam()
try:
yn = input('Continue:/y/n ?').strip()[0] # 去除空白 然后取第一位
except IndexError:
continue
except (KeyboardInterrupt,EOFError):
yn = 'n'
if yn in 'nN':
print('\nBye-bye')
break
if __name__ == '__main__':
main()