光榮之路 Python 課程第一章 初探 22道練習題--3-10題
阿新 • • 發佈:2019-02-05
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整除,這個問題我還要再研究一下……