Jupyter Notebook单元格无法运行:前1000个偶数求和代码无输出
解决前1000个偶数求和代码无输出的问题
你的代码没有输出的核心原因是只定义了函数但从未调用它——Python不会自动执行函数内部的代码,必须显式调用函数才会运行。除此之外,代码还存在几处逻辑错误,下面逐一说明并修正:
原代码的问题
- 未调用函数:定义了
sum_finder()但没有写sum_finder()触发执行,导致函数内的循环和打印代码根本没运行。 - 变量覆盖与类型错误:全局列表
even_numbers被函数内的局部变量覆盖成单个整数,而sum()函数要求传入可迭代对象(比如列表、元组),传入单个整数会触发TypeError。 - 范围错误:
range(2,2000,2)生成的是从2到1998的偶数,总共999个,不是你需要的1000个。要生成前1000个偶数,结束值需要设为2002(因为range是左闭右开区间)。
修正后的代码(循环累加方式)
def sum_finder(): total = 0 # 生成前1000个偶数:2,4,...,2000 for en in range(2, 2002, 2): total += en print(total) # 调用函数执行计算 sum_finder()
更高效的数学公式方式
前n个偶数的和可以用数学公式直接计算:n*(n+1)(推导:2+4+...+2n = 2*(1+2+...+n) = n*(n+1))。对于n=1000,直接计算更高效:
print(1000 * 1001)
内容的提问来源于stack exchange,提问作者Samuel S. Edme
相关产品推荐
相关产品推荐

