我只是想弄清楚这样的东西(用 C 写的(:
for (long long i = 100; i <= pow(10,length); i = i * 100){}
将被翻译成Python 3。 作为最后一部分,迭代器应该将自身乘以 100,是我卡住的地方。
任何协助将不胜感激。
改用while
循环:
i = 100
while i <= 10 ** length:
# ....
i *= 100
或使用生成器功能:
def powerranger(start, end, mult):
val = start
while val <= end:
yield val
val *= mult
和
for i in powerranger(100, 10 ** length, 100):
# ...
与其使用 for 循环,不如使用while
循环来翻译这个 C 型循环:
i = 100
while i <= pow(10, length):
# Use the value of `i` here.
i *= 100
导入很多东西:
from itertools import takewhile, count
for i in (100 ** x for x in takewhile(lambda y: y <= length // 2, count(1))):
# do something useful here
j = 100
for i in range(length):
j *= 100
print j # or other use of j
不是太蟒蛇,但它有效。