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

