创建从1到10求和的循环

2024-09-26 18:07:31 发布

您现在位置:Python中文网/ 问答频道 /正文

作为Python的初学者,我正在尝试创建一个从1到10的循环。我试着使用我在数学课上学到的公式,即“n*(n+1)/2”,但我得到了一个缩进错误。我已经创建了一个“for…in…”循环,并尝试将打印功能放在外部(而不是使用选项卡)。如果有人能告诉我这个错误,我将不胜感激。提前谢谢

my_list = [1,2,3,4,5,6,7,8,9,10]

for a in my_list:
print(a * (a+1) / 2)

错误消息:

print(a * (a+1) / 2)

^

IndentationError: expected an indented block

Tags: in功能消息formy错误选项卡list
2条回答

在Python中,代码缩进非常重要

在您的示例中,只有缩进的内容将在for循环下运行

因此,你应该:

my_list = [1,2,3,4,5,6,7,8,9,10]

for a in my_list:
    print(a * (a+1) / 2)

以避免错误

但这仍然不会产生你所期望的结果,因为这是一个概念上的错误

您不希望在那里有for循环,相反,您需要的是最后一个元素

这可以通过[-1]索引实现。看看this article,它应该可以帮助您理解python索引

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

a = my_list[-1]

print(a * (a + 1) / 2)

现在,如果您想通过手动迭代列表来再次检查,那么您还必须包括这一点。最终的代码可能如下所示:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

sum = 0

for a in my_list:
    sum = sum + a

n = my_list[-1]

print(sum)
print(n * (n + 1) / 2)

或者,我们也可以使用+=运算符,它将变量的值增加所需的量,而不必在右侧使用它,这样sum = sum + a变成sum += a,最终达到:

my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

sum = 0

for a in my_list:
    sum += a

n = my_list[-1]

print(sum)
print(n * (n + 1) / 2)
my_list = [1,2,3,4,5,6,7,8,9,10]
sum=0
for a in my_list:
    sum+=a
print(a * (a+1) / 2)

在中,您没有{}(大括号)。所以,您必须使用tab来完成

相关问题 更多 >

    热门问题