第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

范圍步長乘以 2 的 Python 循環(huán)

范圍步長乘以 2 的 Python 循環(huán)

慕村9548890 2023-02-22 17:21:28
簡單地說,我在 Java 中有這個功能:for( int index = 2; index < size*2; index *= 2 ) // 2, 4, 8, 16, 32, 64, ...{  System.out.print(index + " ");}我想在 Python 循環(huán)中做同樣的事情,但我一直在研究如何使范圍函數(shù)像那樣工作。但我堅持如何使步驟乘以二,因為for index in range(2, size*2, *2):    print(index)我已經嘗試了所有我能想到的變體:for index in range(2, size*2, index = index * 2):    print(index)for index in range(2, size*2, index * 2):    print(index)
查看完整描述

4 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

這是一種方法:

print(', '.join([str(2**i) for i in range(1, 10)]))

輸出:

2, 4, 8, 16, 32, 64, 128, 256, 512


查看完整回答
反對 回復 2023-02-22
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

在 python 中沒有真正的等價物,而for i=1; i<x; i++不必分解為使用 while 循環(huán)。話雖如此,我認為如果將范圍與 python 的生成器理解結合使用,您會發(fā)現(xiàn)使用范圍會非常靈活。

for index in (i*2 for i in range(1,size)):
    print(index)

我覺得這有點更優(yōu)雅,因為你不需要擔心記住有一個條件,i<size*2因為乘法與迭代數(shù)字 1 -> size 是分開的。

我在這里建議使用生成器,因為它最接近您想要在 Java 中實現(xiàn)的精神,而無需訴諸 while 循環(huán),涉及列表理解的解決方案將首先為您的整個范圍創(chuàng)建一個數(shù)字列表,然后迭代該列表,在我看來,這與您試圖模仿的不同。我希望這有幫助!

編輯:關于生成器表達式的文檔,以防您不熟悉https://docs.python.org/3/reference/expressions.html#generator-expressions


查看完整回答
反對 回復 2023-02-22
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

您可以改用 while 循環(huán):


size = 129

index = 2


while index < size:

    print(index)

    index *= 2

或者你可以走得更遠,定義一個生成器來更容易地做到這一點:


def powerloop(mn,mx,step):

    while mn < mx:

        yield mn

        mn *= step


for i in powerloop(2, 129, 2):

    print(i)

輸出:


2

4

8

16

32

64

128


查看完整回答
反對 回復 2023-02-22
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

terms=10

result = list(map(lambda x: 2 ** x, range(terms)))


for i in range(2,terms):

   print(result[i])

輸出


4

8

16

32

64

128

256

512


查看完整回答
反對 回復 2023-02-22
  • 4 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號