在這段代碼中,我試圖計算用戶輸入的人分數的平均值。代碼 :
if __name__ == '__main__':
n = int(input())
student_marks = {}
for _ in range(n):
name, *line = input().split()
scores = list(map(float, line))
student_marks[name] = scores
query_name = input()
for i in name:
if(query_name == i):
sos = float(sum(scores))
lengs = int(len(scores))
avg = float(sos/lengs)
print('.2f'%avg)
編譯器中顯示的錯誤:
回溯(最近一次通話最后):檔案“/tmp/submission/20220330/18/46/hackerrank-9395c8cfa7010e9d6e7964a4ac3c813/code/Solution.py”,第 16 行,模塊
print('.2f'%avg)
NameError: name ' avg' 未定義
uj5u.com熱心網友回復:
根本不需要第二個回圈。您有一個由 索引的字典,因此可以使用作為鍵name查找scores要獲取的字典:query_name
student_marks = {}
for _ in range(int(input())):
name, *line = input().split()
scores = list(map(float, line))
student_marks[name] = scores
query_name = input()
scores = student_marks[query_name]
print(f"{sum(scores)/len(scores):.2f}")
回圈for i in name只是遍歷 的字母name,這就是您輸入的姓氏;對你想做的事情一點用都沒有。
請注意,您也不需要以下任何內容:
if __name__ == '__main__'- 這僅在您處理多個檔案時才有用,并且您使用它的方式,if無論如何一半的代碼都在塊之外。int(len(...))--len已經回傳一個int,不需要轉換它float(sum(...))--sum一個 s 的串列float已經是一個float
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453151.html
標籤:Python python-3.x
上一篇:與資料框中每一行的最小差異
