使用Python函数计算1到x的偶数平方和及错误代码修正
1到x偶数平方和代码修正方案
现有代码错误清单
- 关键字大小写错误:Python语法要求
def、if都是小写,你写的Def、If会直接触发语法报错 - 判断条件逻辑错误:你写的
x%2==0是判断输入的上限x是否为偶数,我们需要筛选的是遍历的当前数值i是否为偶数,应该改为i%2==0 - 缩进逻辑错误:
return sum现在放在for循环内部,循环第一次执行就会直接返回结果,无法完成全量遍历,需要把return调整到和for语句同级的缩进位置,等循环全部执行完再返回结果 - 语法缺漏:
x=int(input("Enter no: ")这行缺少右闭合括号,需要补全为x=int(input("Enter no: "))
修正后的完整代码
def summation(x): sum = 0 for i in range(1, x+1): # 判断当前遍历的数i是不是偶数 if i % 2 == 0: sum = sum + (i*i) # 循环全部执行完再返回求和结果 return sum x = int(input("Enter no: ")) print("The summation of squares of even numbers from 1 to", x, "is", summation(x))
可选优化方案
你也可以直接调整range的步长为2,直接遍历所有偶数,不需要额外加if判断,执行效率更高:
def summation(x): sum = 0 # 从2开始,步长为2,直接生成2、4、6...不超过x的所有偶数 for i in range(2, x+1, 2): sum += i*i return sum x = int(input("Enter no: ")) print("The summation of squares of even numbers from 1 to", x, "is", summation(x))
内容的提问来源于stack exchange,提问作者day6
相关产品推荐
相关产品推荐

