Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Please use python a) Write a function called line_number that takes as parameters two strings representing file names. Assume these are text files. The function
Please use python
a) Write a function called line_number that takes as parameters two strings representing file names. Assume these are text files. The function reads the file indicated by the first parameter and writes its lines prefixed by the line number to the file represented by the second parameter. The function must have a proper docstring and annotations. Use try/except and in case of an error print a user-friendly message to the terminal and re-raise the exception. Example: suppose file test.py has this content: import math y = math.sqrt(2) print(y) Function call line_number('test.py', 'test.py.txt') creates a new file named test.py.txt with content: 1. import math 2. y = math.sqrt(2) 3.print(y) Write a main function that tests function line_number on the problem 1 Python source file itself. Make sure you don't overwrite your program by mistake. b) Write a function called parse_functions that takes as parameter a string representing the name of a .py file. The function reads and parses the Python file and returns a tuple of tuples where each tuple has its element 0 a function name, element 1 the line number, and element 2 the function code as a string (signature and body), with all comments removed. The top-level tuple returned must be ordered alphabetically by the function name. Function parse_functions must have a proper docstring and annotations. Use try/except and in case of an error print a user-friendly message to the terminal and re-raise the exception. Write in the main function code that calls parse_functions on the problem 1 Python file and displays the returned tuple. Example: suppose file funs.py has this content: # File with sample functions. def sum(x, y): # sums up two numbers "Adds two numbers. Returns the sum." return x + y # Returns the product. def mul(x, y): # multiplies two numbers #z is a local variable z = x*y return z def print_pretty(a): print("The result is {:.3f}.".format(a) #test these functions: print_pretty(mul(10, sum(3,5))) A call to parse_functions("funs.py") returns tuple: (("mul", 9, 'def mul(x, y): In tz = x*yin treturn zin'), ("print_pretty", 14, 'def print_pretty(a): In tprint("The result is {:-3f}.".format(a)) '), ("sum", 3, 'def sum(x, y): " Adds two numbers. In Returns the sum."""nlyreturn a + bln'))Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started