Please help me with my Python code Im still getting errors like missing input data and more. def read_data(filename): try: with open(filename, "r") as file: return file.read() except Exception as exception: print("File is empty" if not str(exception) else str(exception)) return None def extract_data(tags, strings): data = [] start_tag = f"<{tags}>" end_tag = f"" while start_tag in strings: try: start_index = strings.find(start_tag) + len(start_tag) end_index = strings.find(end_tag) if end_index == -1: break value = strings[start_index:end_index] if value: data.append(value) strings = strings[end_index + len(end_tag):] except Exception as exception: print(exception) return data def get_names(string): names = extract_data("name", string) return names def get_descriptions(string): descriptions = extract_data("description", string) return descriptions def get_calories(string): calories = extract_data("calories", string) return calories def get_prices(string): prices = extract_data("price", string) return prices def display_menu(names, descriptions, calories, prices): for i in range(len(names)): print(f"{names[i]} - {descriptions[i]} - {calories[i]} - {prices[i]}") def display_stats(calories, prices): total_items = len(calories) average_calories = sum(map(int, calories)) / total_items correct_price = [] for price in prices: try: if price: correct_price.append(float(price[1:])) else: correct_price.append(0.0) except ValueError: print("Error: Missing or bad data") return average_price = sum(correct_price) / total_items print(f"{total_items} items - {average_calories:.1f} average calories - ${average_price:.2f} average price") def main(): filename = "simple.xml" string = read_data(filename) if string: names = get_names(string) descriptions = get_descriptions(string) calories = get_calories(string) prices = get_prices(string) if names and prices and descriptions and calories: display_menu(names, descriptions, calories, prices) display_stats(calories, prices) main()

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Please help me with my Python code Im still getting errors like missing input data and more.

 

def read_data(filename):
    try:
        with open(filename, "r") as file:
            return file.read()
    except Exception as exception:
        print("File is empty" if not str(exception) else str(exception))
        return None


def extract_data(tags, strings):
    data = []
    start_tag = f"<{tags}>"
    end_tag = f"</{tags}>"
    while start_tag in strings:
        try:
            start_index = strings.find(start_tag) + len(start_tag)
            end_index = strings.find(end_tag)
            if end_index == -1:
                break
            value = strings[start_index:end_index]
            if value:
                data.append(value)
            strings = strings[end_index + len(end_tag):]
        except Exception as exception:
            print(exception)
    return data


def get_names(string):
    names = extract_data("name", string)
    return names


def get_descriptions(string):
    descriptions = extract_data("description", string)
    return descriptions


def get_calories(string):
    calories = extract_data("calories", string)
    return calories


def get_prices(string):
    prices = extract_data("price", string)
    return prices


def display_menu(names, descriptions, calories, prices):
    for i in range(len(names)):
        print(f"{names[i]} - {descriptions[i]} - {calories[i]} - {prices[i]}")


def display_stats(calories, prices):
    total_items = len(calories)
    average_calories = sum(map(int, calories)) / total_items
    correct_price = []
    for price in prices:
        try:
            if price:
                correct_price.append(float(price[1:]))
            else:
                correct_price.append(0.0)
        except ValueError:
            print("Error: Missing or bad data")
            return
    average_price = sum(correct_price) / total_items
    print(f"{total_items} items - {average_calories:.1f} average calories - ${average_price:.2f} average price")


def main():
    filename = "simple.xml"
    string = read_data(filename)
    if string:
        names = get_names(string)
        descriptions = get_descriptions(string)
        calories = get_calories(string)
        prices = get_prices(string)
        if names and prices and descriptions and calories:
            display_menu(names, descriptions, calories, prices)
            display_stats(calories, prices)


main()

<
X Test with pytest
5 items 800.0 average calories $6.86 average price
448 E
449
450 .github/workflows/test.py: 1393: AssertionError
451
452
short test summary info
FAILED .github/workflows/test_final_project.py::test_final_project_source_code_formatting
formatting:
453 Final project.py:82:80: E501 line too long (112 > 79 characters)
454
FAILED .github/workflows/test_final_project.py::test_final_project_missing_file
incorrect. Expected 'File is missing'.
AssertionError: Final Project Final Project Python source code
455 Input:
456 Missing file
457 Output:
458 [Errno 2] No such file or directory: 'simple.xml'
459 FAILED .github/workflows/test_final_project.py::test_final_project_empty_file - AssertionError: Final Project Final Project Error message is missing or
incorrect. Expected 'File is empty'.
Input:
Empty file
464 Input:
465 No records
466 Output:
467 FAILED .github/workflows/test_final_project.py::test_final_project_missing_fields
incorrect. Expected 'Error: Missing or bad data'.
AssertionError: Final Project Final Project Error message is missing or
460
461
462 Output:
463 FAILED .github/workflows/test_final_project.py::test_final_project_no_records AssertionError: Final Project Final Project Error message is missing or
incorrect. Expected 'File is empty' or 'No data'.
-
AssertionError: Final Project Final Project Error message is missing or
468 Input:
469 Missing fields
470
Output:
471
Belgian Waffles Two of our famous Belgian Waffles with plenty of real maple syrup 650 - $5.95
472 Strawberry Belgian Waffles Light Belgian waffles covered with strawberries and whipped cream 900 - $7.95
473
Berry-Berry Belgian Waffles - Light Belgian waffles covered with an assortment of fresh berries and whipped cream 900 $8.95
Homestyle Breakfast Thick slices made from our homemade sourdough bread 600 $4.50
474
475 5 items
800.0 average calories
$6.86 average price
476
========= 5 failed, 46 passed, 35 skipped in 1.26s
477 Error: Process completed with exit code 1.
1s
Transcribed Image Text:< X Test with pytest 5 items 800.0 average calories $6.86 average price 448 E 449 450 .github/workflows/test.py: 1393: AssertionError 451 452 short test summary info FAILED .github/workflows/test_final_project.py::test_final_project_source_code_formatting formatting: 453 Final project.py:82:80: E501 line too long (112 > 79 characters) 454 FAILED .github/workflows/test_final_project.py::test_final_project_missing_file incorrect. Expected 'File is missing'. AssertionError: Final Project Final Project Python source code 455 Input: 456 Missing file 457 Output: 458 [Errno 2] No such file or directory: 'simple.xml' 459 FAILED .github/workflows/test_final_project.py::test_final_project_empty_file - AssertionError: Final Project Final Project Error message is missing or incorrect. Expected 'File is empty'. Input: Empty file 464 Input: 465 No records 466 Output: 467 FAILED .github/workflows/test_final_project.py::test_final_project_missing_fields incorrect. Expected 'Error: Missing or bad data'. AssertionError: Final Project Final Project Error message is missing or 460 461 462 Output: 463 FAILED .github/workflows/test_final_project.py::test_final_project_no_records AssertionError: Final Project Final Project Error message is missing or incorrect. Expected 'File is empty' or 'No data'. - AssertionError: Final Project Final Project Error message is missing or 468 Input: 469 Missing fields 470 Output: 471 Belgian Waffles Two of our famous Belgian Waffles with plenty of real maple syrup 650 - $5.95 472 Strawberry Belgian Waffles Light Belgian waffles covered with strawberries and whipped cream 900 - $7.95 473 Berry-Berry Belgian Waffles - Light Belgian waffles covered with an assortment of fresh berries and whipped cream 900 $8.95 Homestyle Breakfast Thick slices made from our homemade sourdough bread 600 $4.50 474 475 5 items 800.0 average calories $6.86 average price 476 ========= 5 failed, 46 passed, 35 skipped in 1.26s 477 Error: Process completed with exit code 1. 1s
Expert Solution
steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Stack operations
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education