消除错误 - "bool" obj 无法迭代



代码旨在为随机输入离散数据打印频率表。这是代码:

from math import log10
from random import randint
N = int(input("Enter number of observations:n"))
l = [ randint(1,100) for var in range (N) ]
print(l)
l.sort()
print(l)
k = 1 + (3.332*log10(N))
k1 = round(k)
print ("Number of intervals should be = ",k1)
x = N//k1 + 1
print("S.NottIntervalsttFrequency")
c = 1 #count
while c <= k:
a = (c-1)*x
b = c*x
count = 0
for v in range(a,b) in l:
count += 1
print(c,"tt","{}-{}".format(a,b),"tt",count)
c += 1

这显示了上面引用的错误,如何解决这个问题?

问题是 range(a,b( 设置了一个从 a 到 b-1 的整数列表。您要求的是让代码通过 l 并选择与这些条件匹配的数字,如下所示:

for v in l:
if ((v>=a) and (v<b)):
count += 1

如果您真的想使用范围,并且您的数据将保持整数,那么它将如下所示:

for v in l:
if v in range(int(a),int(b)):
count += 1

x = N//k1 + 1

应该是

x = 100//k1 + 1

最新更新