question archive (1) Prompt the user for a title for data
Subject:Computer SciencePrice:5.87 Bought7
(1) Prompt the user for a title for data. Output the title. (1 pt)
Ex:
Enter a title for the data: Number of Novels Authored You entered: Number of Novels Authored
(2) Prompt the user for the headers of two columns of a table. Output the column headers. (1 pt)
Ex:
Enter the column 1 header: Author name You entered: Author name Enter the column 2 header: Number of novels You entered: Number of novels
(3) Prompt the user for data points. Data points must be in this format: string, int. Store the information before the comma into a string variable and the information after the comma into an integer. The user will enter -1 when they have finished entering data points. Output the data points. Store the string components of the data points in a list of strings. Store the integer components of the data points in a list of integers. (4 pts)
Ex:
Enter a data point (-1 to stop input): Jane Austen, 6 Data string: Jane Austen Data integer: 6
(4) Perform error checking for the data point entries. If any of the following errors occurs, output the appropriate error message and prompt again for a valid data point.
Ex:
Enter a data point (-1 to stop input): Ernest Hemingway 9 Error: No comma in string. Enter a data point (-1 to stop input): Ernest, Hemingway, 9 Error: Too many commas in input. Enter a data point (-1 to stop input): Ernest Hemingway, nine Error: Comma not followed by an integer. Enter a data point (-1 to stop input): Ernest Hemingway, 9 Data string: Ernest Hemingway Data integer: 9
(5) Output the information in a formatted table. The title is right justified with a minimum field width value of 33. Column 1 has a minimum field width value of 20. Column 2 has a minimum field width value of 23. (3 pts)
Ex:
Number of Novels Authored Author name | Number of novels -------------------------------------------- Jane Austen | 6 Charles Dickens | 20 Ernest Hemingway | 9 Jack Kerouac | 22 F. Scott Fitzgerald | 8 Mary Shelley | 7 Charlotte Bronte | 5 Mark Twain | 11 Agatha Christie | 73 Ian Flemming | 14 J.K. Rowling | 14 Stephen King | 54 Oscar Wilde | 1
(6) Output the information as a formatted histogram. Each name is right justified with a minimum field width value of 20. (4 pts)
Ex:
Jane Austen ****** Charles Dickens ******************** Ernest Hemingway ********* Jack Kerouac ********************** F. Scott Fitzgerald ******** Mary Shelley ******* Charlotte Bronte ***** Mark Twain *********** Agatha Christie Ian Flemming ************** J.K. Rowling ************** Stephen King ****************************************************** Oscar Wilde *
Answer:
Step-by-step explanation
Code:
print('Enter a title for the data: ') title=input() print('You entered:',title) print('\nEnter the column 1 header:') header1=input() print('You entered:',header1) print('\nEnter the column 2 header:') header2=input() print('You entered:',header2) names = [] data = [] while(True): print('\nEnter a data point (-1 to stop input):') datapoint=input() if(datapoint=="-1"): break countcomma=datapoint.count(',') if(countcomma==0): print('Output: Error: No Comma in string') continue if(countcomma>1): print('Output: Error: Too many commas in input') continue spliting = datapoint.split(',') is_int = True try: # convert to integer int(spliting[1]) except ValueError: is_int = False # print result if is_int: data.append(spliting[1]) else: print('Output: Error: Comma not followed by an integer') continue names.append(spliting[0]) print(title.rjust(33,' ')) print(header1.ljust(20,' '),'|',header2.rjust(23,' ')) print('----------------------------------------------') for i in range(0,len(names)): print(names[i].ljust(20,' '),'|',data[i].rjust(23,' ')) print('\n') for i in range(0,len(names)): star='*' length=int(data[i]) rating=star*length print(names[i].rjust(20,' '),rating)
Output:
PFA