我正在撰寫一個程式,該程式使用兩個函式來獲得字母等級并獲得平均分數。我被困在我下面的事情上,并且研究的時間比我為這項任務應該做的要長。需要用到的兩個函式是calcAverage(grade1, grade2, grade3, grade4, grade5)和gradeLetter(grade)。我想出了如何獲得平均值但卡在gradeLetter功能上。
def main():
grade1 = int(input("Please enter your first grade: "))
grade2 = int(input("Please enter your second grade: "))
grade3 = int(input("Please enter your third grade: "))
grade4 = int(input("Please enter your fourth grade: "))
grade5 = int(input("Please enter your fifth grade: "))
avg=calcAverage(grade1, grade2, grade3, grade4, grade5)
print(avg)
def gradeLetter(grade):
if grade > 90 or grade <= 100:
return 'A'
elif grade > 80 or grade < 90:
return 'B'
elif grade > 70 or grade < 80:
return 'C'
elif grade > 60 or grade < 70:
return 'D'
elif grade < 60:
return 'F'
def calcAverage(grade1, grade2, grade3, grade4, grade5):
avg = (grade1 grade2 grade3 grade4 grade5) / 5
return avg
main()
uj5u.com熱心網友回復:
(由于缺乏聲譽,我無法發表評論:/)您需要將邏輯陳述句更改為and:
if grade > 90 and grade <= 100:
另一方面,這更簡單:
if 90 < grade <= 100:
uj5u.com熱心網友回復:
gradeLetter將始終以您撰寫的方式回傳“A”,因為grade <= 100它將始終為 True(具有有意義的輸入)。- 您可以壓縮
gradeLetter以僅檢查不等式的一側,因為您使用的是elif. - 最后,只需在
main列印平均值后呼叫該函式:
def main():
grade1 = int(input("Please enter your first grade: "))
grade2 = int(input("Please enter your second grade: "))
grade3 = int(input("Please enter your third grade: "))
grade4 = int(input("Please enter your fourth grade: "))
grade5 = int(input("Please enter your fifth grade: "))
avg=calcAverage(grade1, grade2, grade3, grade4, grade5)
print(avg)
print(gradeLetter(avg)) #add this line
def gradeLetter(grade):
if grade >= 90: #modify your conditional statements
return 'A'
elif grade >= 80:
return 'B'
elif grade >= 70:
return 'C'
elif grade >= 60:
return 'D'
else:
return 'F'
uj5u.com熱心網友回復:
你需要呼叫gradeLetter函式內部main()作為
avg = calcAverage(grade1, grade2, grade3, grade4, grade5)
print(gradeLetter(avg))
此外gradeLetter方法有錯誤條件比較。修改函式為
def gradeLetter(grade):
if grade > 90 and grade <= 100:
return 'A'
elif grade > 80 and grade < 90:
return 'B'
elif grade > 70 and grade < 80:
return 'C'
elif grade > 60 and grade < 70:
return 'D'
elif grade < 60:
return 'F'
否則,您的帶有or條件的代碼將因此輸出而失敗:
Please enter your first grade: 1
Please enter your second grade: 2
Please enter your third grade: 3
Please enter your fourth grade: 4
Please enter your fifth grade: 5
3.0
A
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/315078.html
