在python中迭代的问题
问题描述:
在Python 2.7中工作。在python中迭代的问题
我希望能够输入一个数字,并返回x和y的所有值集合,以完成方程win_percentage = observed。
def Rlog5(observed):
z = float(observed)/1000
for x in range(350, 650, 1):
y = 1000 - x
win_percentage = (float(x)-(float(x)*float(y)))/(float(x)+float(y)-(2*(float(x)*float(y))))
if win_percentage = observed:
print (z, float(x), float(y))
当我运行该功能时,我什么也没有。没有错误,但没有值(我尝试过,没有浮点数的x,但我认为它需要它们,因为win_percentage应该是浮点数)。最无奈的是,我有这样的代码,基本上做同样的事情,并能正常工作:
def solve(numNuggets):
for numTwenties in range(0, numNuggets/20 + 1):
for numNines in range(0, (numNuggets - numTwenties*20)/9 + 1):
numSixes = (numNuggets - numTwenties*20 - numNines*9)/6
totNuggets = 20*numTwenties + 9*numNines + 6*numSixes
if totNuggets == numNuggets:
print (numSixes, numNines, numTwenties)
我知道这种一个新手的问题,但我在我无计可施......
答
正如其他人所指出的那样,你有=
,你应该有==
,但我认为这是一个错字这里,因为你会得到一个语法错误。但是你正在测试花车的平等性,而花车由于其不精确而几乎永远不会平等。一般来说,您会测试两个花车是否在相互之间的小差异内,传统上称为epsilon
。
试试这个:
if abs(win_percentage - observed) < 0.000001:
print etc
+0
啊,我明白了!非常感谢 –
你不可能有'如果win_percentage =观察:'因为这是一个'SyntaxError',你需要''==不是'='。 – agf