这是我报错的code:
def uni_sample(K=0.0):
if K == 0.0:
k = ("%.4f" % random.random())
else:
k = random.randint(0,K-1)
return k
u[0] =uni_sample()/N
最后一行 [0] =uni_sample()/N被标出来了
这个是报错:
unsupported operand type(s) for /: 'str' and 'int'
这行k = ("%.4f" % random.random())返回是一个字符串,不能进行算术运算,改成:
k = float("%.4f" % random.random())
就可以了,也可以用round函数取保留小数位数,并使数据类型为浮点数
k=round(random.random(),4)
如有帮助,请点采纳。
uni_sample()返回的是字符串,需要转成数值
u[0] = float(uni_sample())/N
或者 k = ("%.4f" % random.random())
改成 k = round(random.random(),4) 返回数值保留4位小数, 不要转成字符串
import random
def uni_sample(K=0.0):
if K == 0.0:
k = round(random.random(),4)
else:
k = random.randint(0,K-1)
return k
N = 2
u = uni_sample()/N
print(u)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!