我确信这是一个简单的修复,但是我在第11行得到了一个语法错误,它是下面lambda函数中嵌入的for循环(对于范围中的j)。你知道吗
import math
import random
def lambda_handler(event, context):
shots = int(event['pi_shots'])
rate = int(event['report_rate'])
pi_values=[]
incircle_sum = 0
for i in range(0, rate):
incircle = 0
for j in range(0,shots/rate):
random1 = random.uniform(-1.0,1.0)
random2 = random.uniform(-1.0,1.0)
if( ( random1*random1 + random2*random2 ) < 1 ):
incircle += 1
incircle_sum += incircle
pi = 4*(float(incircle_sum)/((shots/rate)*(i+1)))
pi_values.append(pi)
return pi_values
您使用的是
range
内置的,错误的。内置range
的第二个参数必须是integer
。 必须将shots/rate
转换为integer
。试试这个:正如您所说,错误来自于} 的参数应该是整数。因此,将除法结果转换为
range(start, stop)
的停止值。^{int
相关问题 更多 >
编程相关推荐