Python Program Help
ksikor14 at yahoo.com
ksikor14 at yahoo.com
Tue Jul 21 09:38:55 EDT 2020
I can't seem to figure out what I am doing wrong. I have tried everything. This is what it is supposed to do:
(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 *
Here is my code:
data_title = input("Enter a title for the data:\n")
print("You entered:", data_title)
h1 = input("\nEnter the column 1 header:\n")
print("You entered:", h1)
h2 = input("\nEnter the column 2 header:\n")
print("You entered:", h2)
point = input("\nEnter a data point (-1 to stop input):\n")
data = []
while point != "-1":
words = point.split(",")
if len(words) == 1:
print("Error: No comma in string.")
elif len(words) > 2:
print("Error: Too many commas in input. ")
else:
try:
author = words[0]
num_novels = int(words[1])
print("Author:", author)
print("Number of Novel(s):", num_novels)
data.append((author, num_novels))
except ValueError:
print("Error: Comma not followed by an integer.")
point = input("\nEnter a data point (-1 to stop input):\n")
print("%33s" % data_title)
print("%-20s|%23s" % (h1, h2))
print("-" * 44)
for item in data:
print("%-20s|%23d" % (item[0], item[1]))
for item in data:
print("%20s %s" % (item[0], '*' * item[1]))
I get this error:
Traceback (most recent call last):
File "main.py", line 1, in <module>
data_title = input("Enter a title for the data:\n")
EOFError: EOF when reading a line
And can't seem to figure out how to correct it any help would be greatly appreciated.
More information about the Python-list
mailing list