【发布时间】:2020-09-16 01:29:36
【问题描述】:
我想在一个循环中执行一个循环,但是当我尝试这样做时,与单一循环相比,我发现了一个错误的计算。
我的代码带有一个有效的单循环:
betresult = []
#main parameters
budget = 1500
numofbets = 100
win = 7.5
loss = -15
for i in range(numofbets):
#random list: 1 - win, 0 - loss
test = np.random.choice(np.arange(0, 2), p=[0.333, 0.667])
betresult.append(test)
#number of win and loss
winbets = np.sum(betresult)
lossbets = numofbets - winbets
#sum of win and loss
winsum = winbets * win
losssum = lossbets * loss
#final sum
result = budget - (winsum + losssum)
print(result)
我想将该代码放入一个新循环中,但如果我用while 或for 做某事,我会发现计算错误。
使用奇异循环我通常会得到one number between 1100 and 1800。
计算错误的代码:
betresult = []
#main parameters
budget = 1500
numofbets = 100
win = 7.5
loss = -15
for i in range(10):
for j in range(numofbets):
#random list: 1 - win, 0 - loss
test = np.random.choice(np.arange(0, 2), p=[0.333, 0.667])
betresult.append(test)
#number of win and loss
winbets = np.sum(betresult)
lossbets = numofbets - winbets
#sum of win and loss
winsum = winbets * win
losssum = lossbets * loss
#final sum
result = budget - (winsum + losssum)
print(result)
使用双循环我通常会得到a number under 0。并且循环范围越大,0以下的数字越大。
错误执行(计算)示例:
1470.0
7.5
-1590.0
-3007.5
-4447.5
-5910.0
-7440.0
-8835.0
-10410.0
-11985.0
【问题讨论】:
-
与pandas无关,去掉标签
-
对于我们看不到的代码,我们无能为力。添加尝试在循环中执行循环的代码。你能解释一下“我计算错误”是什么意思吗?
-
python 对缩进很敏感。您的第二个 for 循环需要缩进第一个。这意味着第二个 for 循环语句需要缩进,其中的任何内容都应该缩进两次。任何缩进一次的内容仅在第一个 for 循环内,任何缩进两次的内容都在第二个循环内(它本身在第一个循环内)。也不要使用“i”两次作为超出范围的变量,这将导致它自己覆盖并导致问题。
-
你还没有缩进内部循环。
-
如果你不使用迭代变量,约定是使用
_:for _ in range(10): for _ in range(numofbets):