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

为什么这是以下代码的输出?

为什么这是以下代码的输出?

慕雪6442864 2021-12-21 15:07:12
我无法理解为什么此代码的输出为 16。如果我的格式有误,我深表歉意,我是编码新手。我已经写了几次代码以确保我的格式正确x = 1while x < 10:    x += xprint(x)为我打印的输出是 16。
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

对于我,这说得通。该语句x += x相当于x *= 2,加倍x。


为了帮助您理解,请x在每次迭代后尝试打印:


x = 1

while x < 10:

    x += x

    print(x)

输出:


2

4

8

16

在每一步:


2    # greater than 10? no

4    # greater than 10? no

8    # greater than 10? no

16   # greater than 10? yes, stop loop


查看完整回答
反对 回复 2021-12-21
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

也许更改 的位置print(x)可以帮助您:


x = 1

print(1)

while x < 10:

    x += x

    print(x)

输出:


1

2

4

8

16

如您所见,有一个共同的赞助人。每次迭代都会while复制之前的值x(这是由于x += x,可以解释为 x 的两倍)。


那么,条件while x < 10就很简单了。


1     # Less than 10. Keep looping.

2     # Less than 10. Keep looping.

4     # Less than 10. Keep looping.

8     # Less than 10. Keep looping.

16    # Greater than 10. STOP!


查看完整回答
反对 回复 2021-12-21
  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号