Я тестирую несоответствия сервера на 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.
edit: вот моя функция calc_average. Я предполагаю, что попытка / исключение неверна
# 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: не все аргументы преобразованы во время форматирования строки