question archive (1) Prompt the user for a title for data

(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.

  • If entry has no comma
  • Output: Error: No comma in string. (1 pt)
  • If entry has more than one comma
  • Output: Error: Too many commas in input. (1 pt)
  • If entry after the comma is not an integer
  • Output: Error: Comma not followed by an integer. (2 pts)

 

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 *

 

pur-new-sol

Purchase A New Answer

Custom new solution created by our subject matter experts

GET A QUOTE

Answer Preview

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