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

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

posted on 2011-01-27 12:04  balian  阅读(1618)  评论(10编辑  收藏  举报