zoukankan      html  css  js  c++  java
  • Python编写两个数的加减法游戏

    目标:

      1.实现两个数的加减法

      2.回答者3次输错计算结果后,输出正确结果,并询问回答者是否继续

    1.使用常规函数实现两个数的加减法游戏

    代码如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    '''使用常规函数编写出题游戏'''
    
    import random
    
    def add(x,y):
        return x + y
    
    def sub(x,y):
        return x - y
    
    def chuti():
        cmds = {'+': add, '-': sub}
        ops = '+-'
        op = random.choice(ops)
        nums = [random.randint(1,50) for i in xrange(2)]
        nums.sort(reverse=True)
        prompt = '%s %s %s = ' %(nums[0], op, nums[1])
        anwser = cmds[op](*nums)
    
        counter = 0 
        while counter < 3:
            try:
                result = int(raw_input(prompt))
            except:
                continue
            if anwser == result:
                print "回答正确"
                print "-" * 20 
                break
            else:
                counter += 1
                print "回答错误"
                print "-" * 20
        else:
            print "正确答案是: %s %s" % (prompt, anwser)
    
    
    if __name__ == "__main__":
        while True:
            chuti()
            try:
                yn = raw_input("Continue(y/n?)").strip()[0]
            except IndexError:
                continue
            except (KeyboardInterrupt,EOFError):
                yn = 'n'
            if yn in 'Nn':
                print "结束"
                break

    •运行代码,测试效果

    [root@localhost python]# python new_mathgame.py
    27 + 25 = 5
    回答错误
    --------------------
    27 + 25 = 2
    回答错误
    --------------------
    27 + 25 = 3
    回答错误
    --------------------
    正确答案是: 27 + 25 =  52
    Continue(y/n?)y
    15 - 1 = 12
    回答错误
    --------------------
    15 - 1 = 13
    回答错误
    --------------------
    15 - 1 = 14
    回答正确
    --------------------
    Continue(y/n?)n
    结束

    2.使用lambda匿名函数实现两位数的加减法游戏

    代码如下:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    '''使用匿名函数lambda编写出题游戏'''
    
    import random
    
    # def add(x,y):
    #    return x + y
    
    # def sub(x,y):
    #    return x - y
    def chuti():
        cmds = {'+': lambda x, y: x + y, '-': lambda x, y: x - y}
        ops = '+-'
        op = random.choice(ops)
        nums = [random.randint(1,50) for i in xrange(2)]
        nums.sort(reverse=True)
        prompt = '%s %s %s = ' %(nums[0], op, nums[1])
        anwser = cmds[op](*nums)
    
        counter = 0 
        while counter < 3:
            try:
                result = int(raw_input(prompt))
            except:
                continue
            if anwser == result:
                print "回答正确"
                print "-" * 20 
                break
            else:
                counter += 1
                print "回答错误"
                print "-" * 20
        else:
            print "正确答案是: %s %s" % (prompt, anwser)
    
    
    if __name__ == "__main__":
        while True:
            chuti()
            try:
                yn = raw_input("Continue(y/n?)").strip()[0]
            except IndexError:
                continue
            except (KeyboardInterrupt,EOFError):
                yn = 'n'
            if yn in 'Nn':
                print "结束"
                break
  • 相关阅读:
    Java Android程序员软件开发知识:枚举的介绍,以及代码的编写教程。
    Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)
    Android(java)开发之将double类型,强制保留到小数点后两位解决方法。
    Android开发之第三方推送JPush极光推送知识点详解 学会集成第三方SDK推送
    Android开发之清除缓存功能实现方法,可以集成在自己的app中,增加一个新功能。
    输入流、输出流
    关键字和继承
    java集合
    SpringMVC框架拦截器
    SpringMVC框架基础
  • 原文地址:https://www.cnblogs.com/xkops/p/6264323.html
Copyright © 2011-2022 走看看