《Python核心編程》第二版第97頁第五章練習 續一 -Python核心編程答案-自己做的-

來源:互聯網
上載者:User

這裡列出的答案不是來自官方資源,是我自己做的練習,可能有誤。

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.