我写下面的代码使用二项分布CDF(通过使用scipy.stats.binom.cdf)来估计100次投掷中不超过k个头的概率,其中k = 0,10,20,30, 40,50,60,70,80,90,100。
然后我尝试使用hist()
绘制它。
import scipy
import matplotlib.pyplot as plt
def binomcdf():
p = 0.5
n = 100
x = 0
for a in range(10):
print(scipy.stats.binom.cdf(x, n, p))
x += 10
plt.hist(binomcdf())
plt.show()
但我不知道为什么我的情节会变空,我收到以下错误,任何人都可以帮忙!
TypeError:'NoneType'对象不可迭代
答案 0 :(得分:2)
您打印了您的值,但没有返回它们。默认返回值为struct Stack<T> {
var items = [T]()
mutating func push(_ item: T) {
items.append(item)
}
mutating func pop() -> T? {
return items.removeLast()
}
}
,这会产生错误。
答案 1 :(得分:1)
我会将每个关联x的x和相应的cdf输出保存到列表中,然后返回该列表。然后使用列表中的数据进行绘图。
答案 2 :(得分:0)
您忘了返回计算值...所以您返回None 应该可以这样工作-见下文-如果我的意思正确的话:)
import re
def decode(text):
for (char, num) in re.findall(r'([a-z])([0-9]+)', text):
yield char * int(num)
print(''.join(decode('a10b2c3')))