javascript - 将“for循环”从 Javascript 转换为 Python
问题描述
我正在尝试将以下 javascript 代码转换为 python。
let speed = 50;
const lightCount = 1;
const lights = [[200, 10];
const isRed = (speed, dist, dur) =>
(18 * dist) % (10 * speed * dur) >= (5 * speed * dur);
for(let i = 0; i < lightCount; i++) {
if (isRed(speed, lights[i][0], lights[i][1])) {
speed--; // Reduce speed
i = -1; // Start again
}
}
console.log(speed);
我在python中尝试了以下方法,但它不起作用:
speed = 50
light_count = 1
lights = [[200, 10]
def is_red(speed, dist, dur):
if (18 * dist) % (10 * speed * dur) >= (5 * speed * dur):
return True
return False
for i in range(light_count):
if is_red(speed, lights[i][0], lights[i][1]):
speed -= 1
i = -1
print(speed)
答案应该是 36,但它显示的是 49。它总是只循环一次。请提出解决方案。提前致谢
解决方案
编辑i
不会退回循环。int
s 是不可变的,因此您只是在编辑临时变量的状态。您可以尝试使用while
循环,然后将 i 递增。
例子:
speed = 50
light_count = 1
lights = [[200, 10]
def is_red(speed, dist, dur):
if (18 * dist) % (10 * speed * dur) >= (5 * speed * dur):
return True
return False
i = 0
while i < light_count:
if is_red(speed, lights[i][0], lights[i][1]):
speed -= 1
# i -= 1
#i += 1
else:
i += 1
del i
推荐阅读
- github - 同时查看一个帐户下所有存储库的存储库活动?
- google-cloud-platform - Google Cloud Pub/Sub 触发器
- c# - 登录服务器请求(Instagram、Facebook、Twitter)
- python - 如何使用 AWS Lambda 执行存储在 AWS S3 中的 python 脚本
- java - 如何删除客户端上的 HttpOnly Cookie?
- html - 如何将图像标签插入 html 字符串?
- python - C++ 中的嵌入式 Python 不能两次导入 pandas
- c# - 通过从 resx 文件中翻译的字符串获取名称
- amazon-web-services - AWS 负载均衡器 - 所有 EC2 实例均未通过运行状况检查并显示已停止服务。为什么?
- r - 选择下拉元素会导致错误:“元素当前不可见,可能无法操作”