请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师, 如果我想写类似for(int i = 1 ; i<=10 ; i*=2){} 这样的循环 用python怎么实现

老师, 如果我想写类似for(int i = 1 ; i<=10 ; i*=2){} 这样的循环 用python怎么实现

正在回答 回答被采纳积分+3

3回答

宝慕林1502307 2019-12-07 09:14:45

你可以这样想

for(int i = 1 ; i<=10 ; i*=2){}

代码中的增量控制实际上可以放到代码块中去完成

for(int i = 1; i <= 10;)
{
    i *= 2
}

那么就好用 for in range 来实现了

for i in range(1, 11):
    pass

但是 range(1, 10) 只能生成正整数序列

a --> 1,2,3,4,5,6,7,8,9,10,11

而 for(int i = 1 ; i<=10 ; i*=2){} 中 i 的输出规律是

b --> 1,2,4,8

这时候就需要找到 a 与 b 之间的映射关系。

b = 2^(a - 1)

反映到代码里

for i in range(1, 10):
    i = 2**(i - 1)
    if i > 10:
        break
    print(i)


1 回复 有任何疑惑可以回复我~
nickkkkkkk0 2019-03-30 20:49:59
for i in range(1,11):
i = i*2
print(i)
continue


1 回复 有任何疑惑可以回复我~
牧鸭人 2019-03-31 16:59:02

in range

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信