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

謝婷婷發表於2020-08-27

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

第13章 函式

測試題

(1) 可以使用def關鍵字定義函式。

(2) 可以使用函式名和一對小括號來呼叫函式。

(3) 當呼叫函式時,把引數放在小括號裡,就可以向這個函式傳遞引數。

(4) 函式可以有任意多個引數,也就是說,引數的個數是沒有限制的。

(5) 函式使用return關鍵字向呼叫者返回資訊。

(6) 當函式執行結束後,函式體中的所有區域性變數都會被銷燬。

動手試一試

(1) 這個函式只需要一組print語句:

def printMyNameBig():
    print("  CCCC       A       RRRRR  TTTTTTT  EEEEEE  RRRRR ")
    print(" C    C     A A      R    R    T     E       R    R ")
    print("C          A   A     R    R    T     EEEE    R    R ")
    print("C         AAAAAAA    RRRRR     T     E       RRRRR ")
    print(" C    C  A       A   R    R    T     E       R    R ")
    print("  CCCC  A         A  R    R    T     EEEEEE  R    R")

呼叫這個函式的程式如下所示。

for i in range(5):
    printMyNameBig()

(2) 答案不唯一。下面給出我的做法,這裡利用7個引數來列印結果。

# 定義一個包含7個引數的函式
def printAddr(name, num, street, city, prov, pcode, country):
    print(name)
    print(num, end=' ')
    print(street)
    print(city, end=" ")
    if prov !="":
        print(", "+prov)
    else:
        print ("")
    print(pcode)
print(country)
print()
# 呼叫該函式並向它傳遞7個引數
printAddr("Sam", "45", "Main St.", "Ottawa", "ON", "K2M 2E9", "Canada")
printAddr("Jian", "64", "2nd Ave.", "Beijing", "", "235643", "China")

(3) 答案略。

(4) 統計零錢的函式如下所示:

def addUpChange(fen, jiao, yuan):
    total = 0.01 * fen + 0.10 * jiao + 1.00 * yuan
    return total

呼叫它的程式如下所示。

fen = int(input("fen: "))
jiao = int(input("jiao: "))
yuan = int(input("yuan: "))
total = addUpChange(fen, jiao, yuan)
print("total is ¥", total)

相關文章