4.1 דיבוג פתרון

  • דוגמה לקוד מתוקן:
    def calculate_average(numbers):
        if not numbers:
            return None
        total = 0
        for num in numbers:
            total += num
        return total / len(numbers)
    
    def find_maximum(numbers):
        if not numbers:
            return None
        max_num = numbers[0]
        for num in numbers:
            if num > max_num:
                max_num = num
        return max_num
    
    def process_data(data):
        processed = []
        for item in data:
            avg = calculate_average(item['values'])
            max_val = find_maximum(item['values'])
            processed.append({
                'id': item['id'],
                'average': avg if avg is not None else "N/A",
                'max': max_val if max_val is not None else "N/A"
            })
        return processed
    
    def print_report(processed_data):
        for item in processed_data:
            print(f"ID: {item['id']}")
            print(f"  Average: {item['average'] if item['average'] != 'N/A' else 'N/A'}")
            print(f"  Max: {item['max'] if item['max'] != 'N/A' else 'N/A'}")
            print("")
    
    def main():
        data = [
            {'id': 1, 'values': [3, 5, 7, 9, 11]},
            {'id': 2, 'values': [2, 4, 6, 8]},
            {'id': 3, 'values': []},
            {'id': 4, 'values': [10, 20, 30]},
            {'id': 5, 'values': [-5, -3, -1, 0, 1, 3]}
        ]
    
        processed_data = process_data(data)
        print_report(processed_data)
    
    if __name__ == "__main__":
        main()