为了账号安全,请及时绑定邮箱和手机立即绑定

3-4中这样的代码为什么错误


x1 = 1

d = 3

n = 100

x100 = 298

#s = (x1+x100)*n/2

s=0

for i in range (100)

s = s+3*i-2

print s


正在回答

5 回答

test

0 回复 有任何疑惑可以回复我~

python对格式要求很严格,特别是缩进

0 回复 有任何疑惑可以回复我~
#1

Rhyme_ylin

test
2019-08-05 回复 有任何疑惑可以回复我~

你写的for i in range(100)相当于for i in range(0,100),所以第一次循环中i=0,3*i-2=-2。

第二次循环3*i-2=1。以此类推,第三,四,五…一直到第一百次循环中3*i-2的值为4,7,9…295。

s的值为14650,比正确值14950少了300,这是因为第一次循环你多减去了2,最后一次循环只给s加上了3*99-2,把3*100-2落下了2+(3*100-2)正好为300.....也许你会问为什么最后一次循环i为什么等于99而不是100,因为range(0,100)其实是一个list:[0,1,2,3,4...99]而不包含100。另外你的for i in range(100)后面没加冒号,后面也没有缩进。。。

正确方法:

s=0
for i in range (1,101):
    s = s+3*i-2
print(s)

0 回复 有任何疑惑可以回复我~

第一种公式当然很简单所以我注释掉想用for循环写,没有加: 但是加了之后显示公式不对

0 回复 有任何疑惑可以回复我~

#注释了这行代码

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

3-4中这样的代码为什么错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信