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

这道题我这么写哪里有问题,求大神解答

print [x*y for x in range(1,100,2)  for y in range(2,100,2) ]

正在回答

6 回答

这种写法相当于走了两次迭代,第一次for x in range(1,100,2),第二次for y in range(2,100,2),结果有49*48个,和题目要求不一样,不单单是编译器版本问题

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

range()含头不含尾,所以range(2,100,2)取偶数,只能取到98,不会取到100,如果想取到100,可以写成range(2,101,1)或者range(2,102,2)。

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

可以理解为,x=1,依次与2到99之间的偶数相乘一次并输入,然后x=1+2=3,再依次与2到99之间的偶数相乘一次并输入,依此类推

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

你的编译器是python3版本,print打印要加括号的

print([x*y for x in range(1,100,2)  for y in range(2,100,2) ])这样就行了



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

慕后端5058260

这个方法好,不过结果为什么会先打印了一遍x呢
2019-11-15 回复 有任何疑惑可以回复我~

语法错误,扔到编译器里就直接报错了http://img1.sycdn.imooc.com//5d81d8be0001e6d305070057.jpg

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

没有问题!

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

举报

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

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

进入课程

这道题我这么写哪里有问题,求大神解答

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