书《Python核心编程(第二版).pdf》,作者:Wesley J. Chun
#!/usr/bin/python # -*- coding: UTF-8 -*- """ @author: @file:easyMath.py @time:2022-03-08 21:38 """ # 随机选择数字以及一个算数函数,显示问题,以及验证结果。 # 在3次错误的尝试以后给出结果,等到用户输入一个正确的答案后便会继续运行。 # 例11.1 算数游戏(easyMath.py) from operator import add, sub from random import randint, choice # 操作符和与其相关联的函数的字典,键是操作符的符号,值是函数 ops = {'+': add, '-': sub} # 在给出正解之前,用户有多少次机会尝试给出答案 MAXTRIES = 2 # 随机选择一个操作并生成两个操作数,同时为了避免减法问题中的负数问题,将这两个算子按大到小进行排序。 # 然后用这些值调用一个数学函数,计算出正确的解。 # 接着用一个等式来提示用户输入并给用户3次机会来输入一个正确的答案。 def doprob(): op = choice('+-') # random.choice()函数用于获取一个序列(我们案例中操作符号的字符串),并随机返回其中的元素。 nums = [randint(1, 10) for i in range(2)] # 用一个列表解析来随机地给我们的练习选择两个数。 nums.sort(reverse=True) # 也可以使用匿名函数lambda x, y: cmp(y, x) print(nums) ans = ops[op](*