【发布时间】:2018-09-11 11:22:50
【问题描述】:
我正在 python 上测试服务器差异。当我仅使用 1 台服务器进行测试时,出现错误。有没有办法尝试/抓住这个:
# Discrepancy = abs(this server's difference - average of differences of all the other servers
for server in server_time_differences:
discrepancies[server] = abs(server_time_differences[server] - calc_average(server))
这是我得到的错误:
discrepancies[server] = abs(server_time_differences[server] - calc_average(server))
TypeError: 不支持的操作数类型 -: 'float' 和 'NoneType'
如果您需要更多信息,请告诉我。感谢您的帮助,我是 Python 新手。
编辑:这是我的 calc_average 函数。我认为 try/except 不正确
# Function that calculates average time difference for the servers
def calc_average(server_name):
#Temporarily copies time differences to use for this function
temp = server_time_differences.copy()
temp.pop(server_name)
sum_ = sum(temp.values())
# Average = sum of servers divided by number of used servers
try:
return sum_ / len(temp.keys())
except ZeroDivisionError:
print("error")
编辑 2:新错误 好的,所以我仍然遇到错误:
in calc_average return sum_ / len(temp.keys())
ZeroDivisionError:除以零
在处理上述异常的过程中,又发生了一个异常:
in <module> discrepancies[server] = abs(server_time_differences[server] - calc_average(server))
和
in calc_average raise RuntimeError ('No other servers to compare with ' %server_name)
TypeError:字符串格式化期间并非所有参数都转换
【问题讨论】:
-
您看到
error打印出来了吗?如果你发现异常,你将不得不返回一些东西 -
不,错误不会被打印出来
-
calc_average的缩进级别是正确的,还是在复制到 SO 时弄乱了? -
是的,没错,只是搞砸了
-
刚刚搞砸了 SO*