zoukankan      html  css  js  c++  java
  • 《Python核心编程》第二版第97页第五章练习 续一 Python核心编程答案自己做的

    这里列出的答案不是来自官方资源,是我自己做的练习,可能有误。

    5-5.
    取余。取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分、5美分、10美分、25美分4种。1美元等于100美分。举例来说,0.76美元计算结果应该是3枚25美分,1枚1美分。类似于76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分这样的结果都是不符合要求的。
    【答案】
    代码如下:
    def verify(a):
        b = '0123456789'
        if len(a) == 2 and a[0] in b and a[1] in b: return True
        else: return False
       
    def change(a):
        N25 = int(a) / 25
        N10 = (int(a) - 25 * N25) / 10
        N5  = (int(a) - 25 * N25 - 10 * N10) / 5
        N1  = int(a) - 25 * N25 - 10 * N10 - 5 * N5
        print '%i cents can be changed to:' % int(a)
        print '25 Cents: %i' % N25
        print '10 Cents: %i' % N10
        print ' 5 Cents: %i' % N5
        print ' 1 Cents: %i' % N1    
       
    a = raw_input("Please input the number in U.S cents: ... ")
    if verify(a): change(a)
    else: print "Invalid input, Please try again."

    【推荐】很喜欢下面两篇文章,故推荐之。
    http://linzhong2006.javaeye.com/blog/205270
    一个程序员的奋斗历程

    http://www.cnblogs.com/netgarden/archive/2007/09/07/886132.html
    一个优秀IT专家的成长历程


    5-6.
    算术。写一个计算器程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:N1操作符N2。其中N1和N2为整型或浮点型,操作符可以是+、-、*、/、%、**,分别表示加法、减法、乘法、整型除、取余和幂运算。计算这个表达式的结果,然后显示出来。提示:可以使用字符串方法split(),但不可以使用内建函数eval()。
    【答案】
    代码如下:
    print 'Please input the expression, such as 1+23: ... '
    expression = raw_input()

    def verify(a):
        try:
            float(a)
            return True
        except ValueError:
            print 'You input an illegal expression. "%s" is not a number.' % a
            return False

    if len(expression.split('+')) == 2:
        if (verify(expression.split('+')[0])) and (verify(expression.split('+')[1])):
            print '= %f' % (float(expression.split('+')[0]) + float(expression.split('+')[1]))
            pass
       
    elif len(expression.split('*')) == 2:
        if (verify(expression.split('*')[0])) and (verify(expression.split('*')[1])):
            print '= %f' % (float(expression.split('*')[0]) * float(expression.split('*')[1]))
            pass

    elif len(expression.split('/')) == 2:
        if (verify(expression.split('/')[0])) and (verify(expression.split('/')[1])):
            print '= %f' % (float(expression.split('/')[0]) / float(expression.split('/')[1]))
            pass

    elif len(expression.split('%')) == 2:
        if (verify(expression.split('%')[0])) and (verify(expression.split('%')[1])):
            print '= %f' % (float(expression.split('%')[0]) % float(expression.split('%')[1]))
            pass
           
    elif len(expression.split('**')) == 2:
        if (verify(expression.split('**')[0])) and (verify(expression.split('**')[1])):
            print '= %f' % (float(expression.split('**')[0]) ** float(expression.split('**')[1]))
            pass    
           
    elif len(expression.split('-')) == 2:
        if (verify(expression.split('-')[0])) and (verify(expression.split('-')[1])):
            print '= %f' % (float(expression.split('-')[0]) - float(expression.split('-')[1]))
            pass  

    else:
        pass
    【未完】这个程序不能计算例如1- -2的表达式。

    5-7.
    营业税。随意取一个商品金额,然后根据当地营业税额度计算应该交纳的营业税。
    【答案】
    代码如下:
    purePrice = float(raw_input('Please input the price: ... '))
    print 'You should pay:'
    print 'Subtotal:  %10.2f ' % purePrice
    print 'Sales Tax: %10.2f ' % round(purePrice * 0.11, 2)
    print 'TOTAL:     %10.2f ' % (purePrice + round(purePrice * 0.11, 2))

    【推荐】很喜欢博客《淡泊江湖.NET程序人生》的文章,故推荐之。
    http://www.cnblogs.com/zzc315/category/61542.html

  • 相关阅读:
    vue-cli项目打包出现空白页和路径错误问题
    Git操作手册
    Atom Editor 插件 atom-less 的使用方法
    Vue搭建
    使绝对定位高宽自适应
    原生JS表单序列化
    前端代码有关搜索引擎的代码
    网页局部打印
    万维网
    浅淡传统企业进入移动互联网的几种方式
  • 原文地址:https://www.cnblogs.com/balian/p/1946088.html
Copyright © 2011-2022 走看看