[英]how to get the values between a range in python
嗨,我想知道你能不能幫我解決這個問題
我想打印從 1 開始的 1 和 2 之間的值,並將 x 添加到它,直到值達到 2。
我嘗試這樣做,但它只打印 1.0625
x = 1/16
for i in range(1,2):
b = i + x
print(b)
我要打印
1.0625
1.125
1.1875
1.25
1.3125
1.375
1.4375
1.5
1.5625
1.625
1.625
1.75
1.8125
1.875
1.9375
非常感謝
您不需要單獨添加 1 和 2 之間的步長,范圍函數的第三個參數允許您設置步長,此處為 1/16。
1 和 2 之間的步長不是整數,它們是浮點數。 不幸的是,Pythons .range()
無法原生處理。 一種選擇是使用可以處理浮動步驟的 numpys arange()。
要打印列表的每個值,您可以在列表前面使用*
。 這告訴打印命令它將打印列表中的每個值而不是整個列表。
由於您希望每個值都有一個新行,因此您還可以設置打印函數的分隔符參數: sep="\n"
。 這意味着每一行都由 "\n" 分隔,這是 python 控制台中的換行符。
import numpy as np
print(*np.arange(1, 2, 1/16), sep="\n")
輸出:
1.0
1.0625
1.125
1.1875
1.25
1.3125
1.375
1.4375
1.5
1.5625
1.625
1.6875
1.75
1.8125
1.875
1.9375
如果您將代碼運行為:
for i in range(1, 2):
print(i)
然后你會看到它只循環一次並打印1
。 正如您在范圍序列類型的文檔中看到的那樣,它只處理整數。
您可能希望使用while
循環,而不是在范圍內使用for
循環:
x = 1 / 16
i = 1
while i < 2 - x:
i += x
print(i)
# Output:
1.0625
1.125
1.1875
1.25
1.3125
1.375
1.4375
1.5
1.5625
1.625
1.6875
1.75
1.8125
1.875
1.9375
您可以使用np.arrange
:
import numpy as np
np.arange(1,2,x)
輸出
array([1. , 1.0625, 1.125 , 1.1875, 1.25 , 1.3125, 1.375 , 1.4375,
1.5 , 1.5625, 1.625 , 1.6875, 1.75 , 1.8125, 1.875 , 1.9375])
您可以按照已經建議的方式使用 numpy 的 arange 函數,也可以使用下面示例中的 while 循環。 python 范圍函數的問題在於它只接受整數作為參數。
x = 1/16
import numpy as np
for i in np.arange(1,2,x):
print(i)
value = 1.0
while value < 2:
print(value)
value = value + x
在這里使用range
不能很好地工作,因為范圍適用於整數,而您希望使用分數。 您可以通過乘法和除法將小數范圍映射到整數范圍來強制它,但這對我來說似乎不必要地復雜。
只是接受你的陳述:
從 1 開始並添加 x 直到值達到 2。
並將其字面理解為代碼,我們有一個非常簡單的方法:
b = 1
while b < 2:
b += x
print(b)
您必須在每次循環迭代中增加i
,而不是重新聲明i
值。
x = 1/16
i = 1 + x
while i < 2:
print(i)
i += x
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.