有 8 个电机,我正在监控它们的速度。我有一个字典,我正在迭代它,然后我正在计算速度与各个检索速度的差异。
speeds = {1: 8800, 2: 8800, 3: 8800, 4: 8800, 5: 8800, 6: 8800, 7: 8800, 8: 7300}
for index , speed in speeds.items():
print("Please print these for me to understand", speed, retrieved_speeds_dict[index])
absolute_change = abs(speed - retrieved_speeds_dict[index] )
rpms = [500, 600, 500, 700, 800, 100, 200, 500]
for each_rpm in rpms:
if absolute_change > each_rpm:
err_msg = err_msg + f"Out of range by {absolute_change}"
print(err_msg)
else:
self.log.info(f"Speed is correct with {absolute_change}")
有人可以帮助修复循环,以便它计算差异并将其与每个转速值进行比较。
答案 0 :(得分:1)
这是你想要的吗?
retrieved_speeds = { 1: 8490, 2: 7920, 3: 8460, 4: 7890, 5: 8460, 6: 7950, 7: 8430, 8: 6720 }
speeds = {1: 8800, 2: 8800, 3: 8800, 4: 8800, 5: 8800, 6: 8800, 7: 8800, 8: 7300}
rpms = [500, 600, 500, 700, 800, 100, 200, 500]
for desired,actual,tolerance in zip( speeds.items(), retrieved_speeds.values(), rpms):
index, desired = desired
variance = abs(actual-desired)
if variance > tolerance:
delta = abs(variance-tolerance)
err_msg = f"{index} Out of range by {delta}"
print(err_msg)
else:
print(f"{index} Speed is correct within {variance}")
输出:
1 Speed is correct within 310
2 Out of range by 280
3 Speed is correct within 340
4 Out of range by 210
5 Speed is correct within 340
6 Out of range by 750
7 Out of range by 170
8 Out of range by 80
答案 1 :(得分:0)
retrieved_speeds_dict = {1: 8490, 2: 7920, 3: 8460, 4: 7890, 5: 8460, 6: 7950,
7: 8430, 8: 6720}
speeds = {1: 8800, 2: 8800, 3: 8800, 4: 8800, 5: 8800, 6: 8800, 7: 8800, 8:
7300}
for a, each_rpm in zip(speeds.items(), rpms):
index, speed = a
print("Please print these for me to understand", speed,
retrieved_speeds_dict[index])
absolute_change = abs(speed - retrieved_speeds_dict[index] )
if absolute_change > each_rpm:
err_msg = f"Out of range by {absolute_change}"
print(err_msg)
else:
print(f"Speed is correct with {absolute_change}")
使用zip函数,可以同时遍历字典和列表