簡體   English   中英

如何在python中獲取范圍之間的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM