到目前為止,這就是我所擁有的:
start = 100
end = x (.10/x)
i = 0
for number in range(start, end, .10):
i = 1
print(f"{i}. {number}")
我希望前 50 個數字的輸出看起來像:
1. 100.0
2. 121.0
3. 133.1
uj5u.com熱心網友回復:
您需要做的就是在每次迭代中乘以 1.1。
start = 100
for number in range(50):
print(f"{number 1}. {round(start,2)}")
start = start * 1.10
1. 100
2. 110.0
...
49. 9701.72
50. 10671.9
uj5u.com熱心網友回復:
其中一些答案似乎有點矯枉過正(也許你需要那個)。但這里有一個簡單的選擇:
n = 100 #starting number
p = 0.1 #increment percentage (10% for your case)
for i in range(1, 51):
print(f'{i}. {round(n,1)}') #print here
n *= 1 p #add 10% here
輸出:
1. 100
2. 110.0
3. 121.0
4. 133.1
5. 146.4
6. 161.1
7. 177.2
8. 194.9
...
uj5u.com熱心網友回復:
range僅表示整數序列。您可以itertools.count在其位置使用:
from itertools import count
start = 100
end = x (.10/x)
i = 0
for number in count(start, .10):
if number >= end:
break
i = 1
print(f"{i}. {number}")
count用于無限的數字流,因此您需要在回圈內明確的中斷條件才能退出。
效率稍低,您可以添加itertools.takewhile以提前終止流。
from itertools import count, takewhile
start = 100
end = x (.10/x)
i = 0
for number in takewhile(lambda x: x < end, count(start, .10)):
i = 1
print(f"{i}. {number}")
無關,您可以使用enumerate而不是管理i自己:
from itertools import count, takewhile
start = 100
end = x (.10/x)
for i, number in enumerate(takewhile(lambda x: x < end, count(start, .10))):
print(f"{i}. {number}")
要么
from itertools import count
start = 100
end = x (.10/x)
for i, number in enumerate(count(start, .10)):
if number >= end:
break
print(f"{i}. {number}")
uj5u.com熱心網友回復:
這也可以通過以下方式實作generator_expression:
start = 100
print(*(f'{x 1}. {round(start*1.1**x, 1)}' for x in range(50)), sep='\n')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/436049.html
