def count_http_errors(status_codes):
counts = {"4xx": 0, "5xx": 0}
for code in status_codes:
try:
code = int(code)
except (TypeError, ValueError):
continue
if 400 <= code <= 499:
counts["4xx"] += 1
elif 500 <= code <= 599:
counts["5xx"] += 1
return counts
if __name__ == "__main__":
test_data = [200, 201, 301, 399, 400, 404, 499, 500, 503, 599, 600, None, "abc"]
result = count_http_errors(test_data)
print(result)
assert result == {"4xx": 3, "5xx": 3}
assert count_http_errors([]) == {"4xx": 0, "5xx": 0}
print("Challenge 5 OK")
ZGVmIGNvdW50X2h0dHBfZXJyb3JzKHN0YXR1c19jb2Rlcyk6Cgljb3VudHMgPSB7IjR4eCI6IDAsICI1eHgiOiAwfQoJZm9yIGNvZGUgaW4gc3RhdHVzX2NvZGVzOgoJCXRyeToKCQkJY29kZSA9IGludChjb2RlKQoJCWV4Y2VwdCAoVHlwZUVycm9yLCBWYWx1ZUVycm9yKToKCQkJY29udGludWUgCgkJaWYgNDAwIDw9IGNvZGUgPD0gNDk5OgoJCQljb3VudHNbIjR4eCJdICs9IDEKCQllbGlmIDUwMCA8PSBjb2RlICA8PSA1OTk6CgkJCWNvdW50c1siNXh4Il0gKz0gMQoJcmV0dXJuIGNvdW50cwoJCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICB0ZXN0X2RhdGEgPSBbMjAwLCAyMDEsIDMwMSwgMzk5LCA0MDAsIDQwNCwgNDk5LCA1MDAsIDUwMywgNTk5LCA2MDAsIE5vbmUsICJhYmMiXQogICAgcmVzdWx0ID0gY291bnRfaHR0cF9lcnJvcnModGVzdF9kYXRhKQogICAgcHJpbnQocmVzdWx0KQogICAgYXNzZXJ0IHJlc3VsdCA9PSB7IjR4eCI6IDMsICI1eHgiOiAzfQogICAgYXNzZXJ0IGNvdW50X2h0dHBfZXJyb3JzKFtdKSA9PSB7IjR4eCI6IDAsICI1eHgiOiAwfQogICAgcHJpbnQoIkNoYWxsZW5nZSA1IE9LIik=
ICAgIHRlc3RfZGF0YSA9IFsyMDAsIDIwMSwgMzAxLCAzOTksIDQwMCwgNDA0LCA0OTksIDUwMCwgNTAzLCA1OTksIDYwMCwgTm9uZSwgJnF1b3Q7YWJjJnF1b3Q7XQo=
test_data = [200, 201, 301, 399, 400, 404, 499, 500, 503, 599, 600, None, "abc"]