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

不知道错在哪里

不知道错在哪里

wuyangzx 2016-04-08 10:40:43
L = range(1,101)for x in L:    print sum([x*x])
查看完整描述

5 回答

已采纳
?
清波

TA贡献165条经验 获得超90个赞

先废话,再回答问题, for...in... 本来应该是 Python 中最强大的范式了, Python 为 iterable类型 做了很多功能,然后 用关键字 for... in iterable object, 组合出最简便的 遍历方法, 但是也恰恰是这样,很多人都会对这个有所误解!!


正式开始回答:

L = range(1,101)
for x in L:
    print sum([x*x])

题主代码如上,题主想求的什么结果呢,问题里没有给出描述,代码是没有错误的,那肯定是没有得到预期的结果了, 我猜题主想 求 1到100 的 数 的 平方 的和。 

如果是这样的话,有很多种思路:

其一, 列表推导式

L=[x*x for x in range(1,101)]
print L
[1, 4, 9, 16, ......., 10000 ]
result = sum(L)
print result
338350

###放到一个句子就是:
print sum([x*x for x in range(1,101)])

其二, 新建数据,for 循环 append.

L=[]
for x in range(1,101):
    L.append(x*x)
print sum(L)
338350
## 不如列表推导式 方便 简洁。


问题回答完了, 我又要开始啰嗦了。 建议题主 深入学习下 for ... in ...   可以从网上找文章,或者随便一本Python 入门的书都可以。

查看完整回答
反对 回复 2016-04-14
?
phoenixor

TA贡献1条经验 获得超0个赞

sum里面不用[] 啊

查看完整回答
反对 回复 2016-04-14
?
IT_for_Ever

TA贡献1条经验 获得超0个赞

亲,你的python版本是不是错啦,试试这个呢print(sum([x*x]))

查看完整回答
反对 回复 2016-04-08
?
清波

TA贡献165条经验 获得超90个赞

代码没有错误, 楼主如果想要求 1到100 的平方和的话, 应该如下这么写:

sum_num = 0
for x in range(1,101):
    sum_num+=(x**2)

print sum_num


查看完整回答
反对 回复 2016-04-08
  • 5 回答
  • 0 关注
  • 1728 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信