1. 程式人生 > >光榮之路 Python 課程第一章 初探 22道練習題--3-10題

光榮之路 Python 課程第一章 初探 22道練習題--3-10題

3.計算一週有多少分鐘、多少秒鐘

>>> w=7
>>> d=24
>>> h=60
>>> m=60
>>> print("一週有多少分鐘?",(w*d*h))
一週有多少分鐘? 10080
>>> print("一週有多少秒?",(w*d*h*m))
一週有多少秒? 604800
>>>

這裡寫圖片描述
這道題相對比較簡單,沒有太多需要優化的地方,本題的難點在於邏輯上如何計算一週有多少分鐘和多少秒

4.3個人在餐廳吃飯,想分攤飯費。總共花費35.27美元,他們還想給15%的小費。每個人該怎麼付錢,程式設計實現

>>> t=35.27
>>> t=t+t*0.15
>>> p=t/3
>>> print("每個人應付:",round(p,2))
每個人應付: 13.52
>>>

執行結果
這道題也比較簡單,只要算好總共要付的錢,再求平均數就好

5.計算一個12.5m X 16.7m的矩形房間的面積和周長

>>> k=12.5
>>> c=16.7
>>> print("房間面積為:",(c*k),'平方米')
房間面積為: 208.75 平方米
>>> 
print("房間周長為:",((c+k)*2),'m') 房間周長為: 58.4 m >>>

執行結果
不多解釋了……簡單……

6.怎麼得到9 / 2的小數結果

>>> p=9/2
>>> p
4.5
>>> float(p)
4.5
>>> print(float(p))
4.5
>>>

這裡寫圖片描述

7.python計算中7 * 7 7 7,可以有多少種寫法
目前想到4種

>>> p=7*7*7*7
>>> p
2401
>>> p=pow(7
,4) >>> p 2401 >>> p=pow(7,2)*pow(7,2) >>> p 2401 >>> p=7**4 >>> p 2401 >>>

執行結果

8.寫程式將溫度從華氏溫度轉換為攝氏溫度。轉換公式為C = 5 / 9*(F -32)

>>> F=input("請輸入華氏度:")

請輸入華氏度:123

>>> F=int(F)

>>> C=5/9*(F-32)

>>> print("當前是",round(C,1),"攝氏度")

當前是 50.6 攝氏度

>>> 

執行結果
同樣是輸入的問題,我們來完善一下:

#encoding=utf-8
while True:
    try:
        F=input("請輸入華氏度:")
        F=int(F)
        C=5/9*(F-32)
        break
    except (TypeError,ValueError):
        print("請輸入正整數!再試一次吧")

print("當前是",round(C,1),"攝氏度")

執行結果

9.一家商場在降價促銷。如果購買金額50-100元(包含50元和100元)之間,會給10%的折扣,如果購買金額大於100元會給20%折扣。編寫一程式,詢問購買價格,再顯示出折扣(10%或20%)和最終價格。

# encoding=utf-8
p=input("您的購物價格是:")
p=int(p)
if 50<=p<=100:
    p1=p-(p*0.1)
    print("您的折扣率是10%'\n'您的最終價格是:",p1)
elif p>100:
    p2=p-(p*0.2)
    print("您的折扣率是20%'\n'您的最終價格是:",p2)
else:
    print("您的購物價格太低,沒有折扣!")

執行結果

這道題我們也可以完善一下:

# encoding=utf-8
while True:
    try:
        p=input("您的購物價格是:")
        p=int(p)
        if p<0:
            print("請輸入正確的價格!")
            continue
        else:
            break
        break
    except:
        print("請輸入正確的價格!")
if 50<=p<=100:
    p1=p-(p*0.1)
    print("您的折扣率是10%\n您的最終價格是:",p1)
elif p>100:
    p2=p-(p*0.2)
    print("您的折扣率是20%\n您的最終價格是:",p2)
else:
    print("您的購物價格太低,沒有折扣!")

我除了增加了對字元和回車的判斷,也加入了對於負數的判斷,使得輸入負數時不會報出”您的購物價格太低,沒有折扣!”這句,而是直接要求輸入正確的價格。此外,在列印的語句中也有個小錯誤,就是換行符上加了”(單引號),這導致輸出時有點小瑕疵,去掉單引號後就沒有問題了。
執行結果

10.判斷一個數n能否同時被3和5整除

# encoding=utf-8
n=input("請輸入一個整數:")

n=int(n)

if n%3==0 and n%5==0:

   print(n,"可以被3和5整除")

elif n%3==0:

   print(n,"只能被3整除")

elif n%5==0:

   print(n,"只能被5整除")

else:

   print(n,"既不能被3整除,也不能被5整除")

執行結果
我再來完善下這道題:

# encoding=utf-8
while True:
    try:
        n=input("請輸入一個數:")
        n=int(n)
        break
    except:
        print("輸入錯誤!請輸入一個數")

if n%3==0 and n%5==0:
    print(n,"可以被3和5整除")
elif n%3==0:
    print(n,"只能被3整除")
elif n%5==0:
    print(n,"只能被5整除")
else:
    print(n,"既不能被3整除,也不能被5整除")

執行結果
完善後好多了,但是這道題還有一個問題,就是如果輸入小數,應該輸出的是既不能被3整除也不能被5整除,這個問題我還要再研究一下……