美文网首页python百例
71-函数练习:数学游戏

71-函数练习:数学游戏

作者: 凯茜的老爸 | 来源:发表于2018-08-02 09:41 被阅读5次

    随机生成100以内的两个数字,实现随机的加减法。如果是减法,结果不能是负数。
    算错三次,给出正确答案。

    from random import randint, choice
    
    def add(x, y):
        return x + y
    
    def sub(x, y):
        return x - y
    
    def exam():
        cmds = {'+': add, '-': sub}
        nums = [randint(1, 100) for i in range(2)]
        nums.sort(reverse=True)  # 列表降序排列
        op = choice('+-')
        result = cmds[op](*nums)
        prompt = "%s %s %s = " % (nums[0], op, nums[1])
        tries = 0
    
        while tries < 3:
            try:
                answer = int(input(prompt))
            except:  # 简单粗暴地捕获所有异常
                continue
    
            if answer == result:
                print('Very good!')
                break
            else:
                print('Wrong answer.')
                tries += 1
        else:  # 此得是while的else,全算错才给答案,算对了就不用给出答案了
            print('%s%s' % (prompt, result))
    
    if __name__ == '__main__':
        while True:
            exam()
            try:
                yn = input("Continue(y/n)? ").strip()[0]
            except IndexError:
                continue
            except (KeyboardInterrupt, EOFError):
                print()
                yn = 'n'
    
            if yn in 'nN':
                break
    

    相关文章

      网友评论

        本文标题:71-函数练习:数学游戏

        本文链接:https://www.haomeiwen.com/subject/eoqjvftx.html