3 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
當(dāng)您處理此類事情(無論是作業(yè)還是生產(chǎn)代碼)時(shí),最好測試每個(gè)單獨(dú)的函數(shù)以確保它們正常工作。例如,嘗試find_perfect
使用不同的(硬編碼的)列表運(yùn)行;你會發(fā)現(xiàn)它每次都能得到正確的答案。現(xiàn)在嘗試測試get_test_scores
并打印輸出。哎呀!
您的問題是您僅附加最后的測試分?jǐn)?shù)。該線tests.append(test_score)
應(yīng)該位于for
循環(huán)內(nèi)部。

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
你tests.append(test_score)會發(fā)生一次,因?yàn)樗?for 循環(huán)之外,試試這個(gè):
def get_test_scores():
tests = []
for i in range(SIZE):
test_score = int(input("Enter test score #"+str(i+1)+" in the range 0-100: "))
while (test_score <0) or (test_score >100):
print("ERROR!")
test_score = int(input("Enter test score #"+str(i+1)+" in the range 0-100: "))
tests.append(test_score)
return tests
順便說一句,我認(rèn)為值得快速計(jì)算你有多少個(gè) 100 并且不再迭代,在 python 中,你可以從像 tuple 這樣的函數(shù)返回很少的值,例如:
def get_test_scores():
tests = []
count = 0
for i in range(SIZE):
test_score = int(input("Enter test score #"+str(i+1)+" in the range 0-100: "))
while (test_score <0) or (test_score >100):
print("ERROR!")
test_score = int(input("Enter test score #"+str(i+1)+" in the range 0-100: "))
if test_score == 100:
count += 1
tests.append(test_score)
return count, tests
用法 :
count, scores = get_test_scores()
count 是一個(gè)數(shù)字,scores 是分?jǐn)?shù)列表

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊
tests.append(test_score)
通過在 for 循環(huán)之前添加 tab 來使其內(nèi)部
添加回答
舉報(bào)