我正在處理一個文本文件,其中填充了由空格分隔的數字字符串。我試圖找到文件中數值在1到1,000,000之間的數值。我目前有這隻打印數字。有關如何查找數量的任何建議?查找一定範圍內的數字量
for line in file:
for number in line:
if "0" < number < "1000000":
print(number)
我正在處理一個文本文件,其中填充了由空格分隔的數字字符串。我試圖找到文件中數值在1到1,000,000之間的數值。我目前有這隻打印數字。有關如何查找數量的任何建議?查找一定範圍內的數字量
for line in file:
for number in line:
if "0" < number < "1000000":
print(number)
file_object = open("numbers", "r")
count = 0
for line in file_object:
for number in line.split():
if int(number) > 10 and int(number) < 100:
count = count + 1
print(count)
謝謝你的幫助! –
我討厭再次遇到問題,但是您是否知道是否有辦法在不重新進入的情況下循環多個範圍。即0-100,101-200等 –
當然,只需複製if塊,將「if」改爲「elif」(表示:else if)並更改範圍。 (請參閱:https://www.tutorialspoint.com/python/python_if_else.htm) –
首先,投你number
變量這樣一個int:int(number)
和使用整數,而不是字符串比較。像這樣:if 0 < int(number) < 10000
。
此外,添加一個像建議的一些意見的計數器。下面是完整的代碼:
counter = 0
for line in file:
for number in line:
if 0 < number < 1000000:
counter += 1
謝謝你的幫助! –
你的做法是不正確自:
number
是一條線的每一個字符。所以這些只能是數字,字母等。不是多位數字;和但是,您可以輕鬆地計算這個像:
sum(0 < int(n) < 1000000 for line in file for n in line.split() if n.strip())
的int(..)
蒙上了字符串等價物(積分)號。因此'100'
轉換爲100
。如果我們想要執行數字比較,這是必需的。
split()
用於獲取文件中的數字。它會查找空白等,並分割這些部分。
如果數字格式良好,if n.strip()
可以是可選的。但是,這可能是有問題的:例如,如果你有拖尾新線等
謝謝你的幫助! –
如果文件只有數字,你可以使用類似:
with open(path, 'r') as f:
print sum(1 for x in f.read().split() if 10000 > int(x) > 0)
這將在整個文件中的數數無需單獨計算每條線。
謝謝你的幫助! –
提示:在循環前初始化一個計數變量,然後在找到符合條件的數字時繼續向該變量添加一個。 –
有一個變量,你每次比賽時增加 – litelite
這是*不正確的方法。 –