fork download
  1. def count_http_errors(status_codes):
  2. counts = {"4xx": 0, "5xx": 0}
  3. for code in status_codes:
  4. try:
  5. code = int(code)
  6. except (TypeError, ValueError):
  7. continue
  8. if 400 <= code <= 499:
  9. counts["4xx"] += 1
  10. elif 500 <= code <= 599:
  11. counts["5xx"] += 1
  12. return counts
  13.  
  14. if __name__ == "__main__":
  15. test_data = [200, 201, 301, 399, 400, 404, 499, 500, 503, 599, 600, None, "abc"]
  16. result = count_http_errors(test_data)
  17. print(result)
  18. assert result == {"4xx": 3, "5xx": 3}
  19. assert count_http_errors([]) == {"4xx": 0, "5xx": 0}
  20. print("Challenge 5 OK")
Success #stdin #stdout 0.08s 14180KB
stdin
    test_data = [200, 201, 301, 399, 400, 404, 499, 500, 503, 599, 600, None, "abc"]
stdout
Standard output is empty