总计额外学分

问题描述 投票:0回答:3

练习时遇到问题。

将给定列表中收到的额外学分总额分配给 sum_extra 测试成绩。满分是 100,因此超过 100 的任何内容都是额外学分。

我已经安排好了。

for i in test_grades:
     if i > 100:
        sum_extra.append(i - 100)

sum_extra = sum(sum_extra)

我收到的错误。

Exited with return code 1.
Traceback (most recent call last):
  File "main.py", line 9, in <module>
    sum_extra.append(i - 100)
AttributeError: 'int' object has no attribute 'append'

不完全确定是什么原因造成的,因为练习生成的列表应该是整数形式。在我看来,这应该可行,但这肯定是因为不理解这里的一些关键要素。

全视图。

user_input = input()
test_grades = list(map(int, user_input.split())) # test_grades is an integer list of test scores

sum_extra = -999 # Initialize 0 before your loop

for i in test_grades:
     if i > 100:
        sum_extra.append(i - 100)

sum_extra = sum(sum_extra)

预期输出将是从 test_grades 输入生成的列表的总和。

python list loops sum
3个回答
0
投票

正如错误所示,您有一个号码。

.append
仅对列表有效。


您可以使用生成器表达式,并将其传递给

sum()

“如果该数字超过 100,则从

test_grades
中取(每个数字减去 100)的总和”

sum_extra = sum(i - 100 for i in test_grades if i > 100)

0
投票

用户输入=输入() test_grades = list(map(int, user_input.split())) # test_grades 是测试分数的整数列表

sum_extra = -999 # 在循环之前初始化 0

sum_extra = sum(i - 100 for i in test_grades if i > 100)

print('额外总和:', sum_extra)


-1
投票
user_input = input()
test_grades = list(map(int, user_input.split())) # test_grades is an integer list of test scores


sum_extra = 0 # Initialize 0 before your loop

for grade in test_grades:
    if grade > 100:
        sum_extra += (grade - 100)
        
print('Sum extra:', sum_extra)
© www.soinside.com 2019 - 2024. All rights reserved.