לדלג לתוכן

4.1 דיבוג תרגול

עכברים, זבובים, יתושים, גוקים

כתבתי קוד שאמור לעבד המון מידע, ולהחזיר חישובים חשובים מאוד, מישום מה הקוד שלי קורס! עזרו לי לדבג את הקוד ולתקן אותו, זה חשוב לי מאוד.
- הקוד:

def calculate_average(numbers):  
    total = 0  
    for num in numbers:  
        total += num  
    return total / len(numbers)  


def find_maximum(numbers):  
    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,  
            'max': max_val  
        })  
    return processed  


def print_report(processed_data):  
    for item in processed_data:  
        print(f"ID: {item['id']}")  
        print(f"  Average: {item['average']:.2f}")  
        print(f"  Max: {item['max']}")  
        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()

- השתמשו בדיבגר כדי לפתור את כל הבאגים.
- הקוד אמור להדפיס:
ID: 1
  Average: 7.00
  Max: 11

ID: 2
  Average: 5.00
  Max: 8

ID: 3
  Average: N/A
  Max: N/A

ID: 4
  Average: 20.00
  Max: 30

ID: 5
  Average: 0.00
  Max: 3