首页 > 解决方案 > Lambda 函数中嵌入的 for 循环中的语法错误

问题描述

我确定这是一个简单的修复,但我在第 11 行遇到语法错误,这是以下 lambda 函数中嵌入的 for 循环(for j in range)。

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

标签: pythonpython-2.7

解决方案


正如您所说,错误来自 的停止值range(start, stop)。for 的参数range应该是整数。因此将除法结果转换int

for j in range(0, int(shots/rate)):

推荐阅读