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

感觉没毛病,为啥运行不了

https://img1.sycdn.imooc.com//5bc71d7f0001d2c510420278.jpg求解!!!

正在回答

7 回答

是不是因为少了一行关于 x 的代码 

我看你写的好像没有x的变量

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

你这个算式逻辑和题目不符合啊!计算结果当然不一样啊!

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

这个要理解是这三个变量的作用,sum用来求和的。n用来算第几项的值的,x用来判断第几项的:所以是:

sum = 0

x = 1

n = 1

while True:

    sum = sum + n

    n = n * 2

    x = x + 1

    if x > 20

        break;

print(sum)

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

python里面表示 a的b次方 是 a**b

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

不是 1 ,改来改去。要么32.要么10几。要么五十多万。 就是没有参考的值。而且我看参考的代码。不理解,X和N是怎么变量的。如果说X是来运算1 2 3 4 5这样的循序来得到题目中的数字,也行不通啊。sum = sum +1 .可以理解   X= X*2 。2也可以理解。3的时候就理解不了,因为不是4,也不是 8。肯定不会这时候用到 n 来,不合理,n只是用来计算到了第几个数 。 

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

张小肆

sum = 0 x = 1 n = 1 while True: if x > 20: break sum = sum + n x = x +1 n = 2**x/2 print n print x print 'xxxxxxxxxxxxxxxxx' print sum
2018-10-17 回复 有任何疑惑可以回复我~

if x>=20

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

qq_纳米云_ 提问者

跟大小没关系。试过了
2018-10-17 回复 有任何疑惑可以回复我~
#2

张小肆 回复 qq_纳米云_ 提问者

sum += n n = 2^x/2
2018-10-17 回复 有任何疑惑可以回复我~
#3

张小肆

这2句倒过来
2018-10-17 回复 有任何疑惑可以回复我~
#4

张小肆 回复 qq_纳米云_ 提问者

你的x没有自增啊
2018-10-17 回复 有任何疑惑可以回复我~
#5

qq_纳米云_ 提问者 回复 张小肆

嗯。 2^中的 ^ 能运行。但是值不对。
2018-10-17 回复 有任何疑惑可以回复我~
#6

张小肆 回复 qq_纳米云_ 提问者

你这样x永远是1吧, 需要 x += 1
2018-10-17 回复 有任何疑惑可以回复我~
#7

qq_纳米云_ 提问者 回复 张小肆

不是 1 ,改来改去。要么32.要么10几。要么五十多万。 就是没有参考的值。而且我看参考的代码。不理解,X和N是怎么变量的。如果说X是来运算1 2 3 4 5这样的循序来得到题目中的数字,也行不通啊。sum = sum +1 .可以理解 X= X*2 。2也可以理解。3的时候就理解不了,因为不是4,也不是 8。肯定不会这时候用到 n 来,不合理,n只是用来计算到了第几个数 。
2018-10-17 回复 有任何疑惑可以回复我~
查看4条回复

if x>20 :

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

qq_纳米云_ 提问者

试过了,不行的。 后来发现Break少四个空格,又加上了。是可以运行。 但是和题目参考的答案。运行出来的输出值,少将近一半的值,还没有一半。
2018-10-17 回复 有任何疑惑可以回复我~
#2

qq_纳米云_ 提问者 回复 qq_纳米云_ 提问者

我自己修改了一下。可以运行了。但是不是题目所要的值。疯了。
2018-10-17 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

感觉没毛病,为啥运行不了

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