《父與子的程式設計之旅(第3版)》第7章習題答案

謝婷婷發表於2020-08-27

本文針對第7章章末的習題提供參考答案。當然,有些習題的正確答案不止一個,特別是“動手試一試”,不過你可以通過這些答案來判斷自己的思路是否正確。

第7章 決策

測試題

(1) 輸出如下所示。

Under 20

由於my_number的值小於20,而if語句中的測試條件為true,因此會執行if語句後面的程式碼塊(這裡只有一行程式碼)。

(2) 輸出如下所示。

20 or over

這時my_number的值大於20,if語句中的測試條件為false,此時不會執行它後面的程式碼塊,而是會執行else語句中的程式碼塊。

(3) 要檢查一個數字是否大於30但不超過40,可以這樣編寫程式:

if number > 30 and number <= 40:  
    print('The number is between 30 and 40')

還可以像下面這樣編寫。

if 30 < number <= 40:
    print("The number is between 30 and 40")

(4) 要檢查輸入的字母是大寫Q還是小寫q,可以這樣做:

if answer == 'Q' or answer == 'q':
    print("you typed a 'Q' ")

注意,這裡列印的字串使用了雙引號,不過其中Q的兩邊是單引號。對於如何區別這兩種引號,就是如果字串中出現了引號,可以用另一種引號包裹字串。

動手試一試

(1) 下面給出一個答案:

# 計算商店折扣的程式
# 小於或等於10元打9折,大於10元打8折
item_price = float(input('enter the price of the item: '))
if item_price <= 10.0:
    discount = item_price * 0.10
else:
    discount = item_price * 0.20
final_price = item_price - discount
print('You got ', discount, 'off, so your final price was', final_price)

這裡並沒有考慮把答案四捨五入為兩位小數,也沒有顯示貨幣單位。

(2) 以下給出一種做法。

# 檢查足球運動員年齡和性別的程式
# 接受10歲到12歲的女孩
gender = input("Are you male or female? ('m' or 'f') ")
if gender == 'f':
    age = int(input('What is your age? '))
    if age >= 10 and age <= 12:
        print('You can play on the team')
    else:
        print('You are not the right age.')
else:
    print('Only girls are allowed on this team.')

(3) 以下給出一個答案:

# 檢查是否需要加油的程式
# 距離下一個加油站還有200千米
tank_size = int(input('How big is your tank (liters)? '))
full = int(input('How full is your tank (eg. 50 for half full)? '))
mileage = int(input('What is your gas mileage (km per liter)? '))
range = tank_size * (full / 100) * mileage
print('You can go another', range, 'km.')
print('The next gas station is 200 km away.')
if range <= 200:
    print('Get gas now!')
else:
    print('You can wait for the next station.')

要增加5升的緩衝區,需要更改這行程式碼:

range = tank_size * (full / 100) * mileage

更改後的程式碼如下所示。

range = (tank_size - 5) * (full / 100) * mileage

(4) 下面是一個簡單的口令程式。

password = "bigsecret"
guess = input("Enter your password: ")
if guess == password:
    print("Password correct. Welcome")
    # 程式的其餘部分程式碼放在這裡
else:
    print("Password incorrect. Goodbye")

相關文章