Далее следует домашнее задание, на котором я весь день проваливаюсь, и мой код.Возможно, я пытаюсь ошибиться. Не могли бы вы сказать мне, что я делаю неправильно?
(1) Запросить у пользователя заголовок для данных.Выведите заголовок.(1 pt)
Ex:
Enter a title for the data:
Number of Novels Authored
You entered: Number of Novels Authored
(2) Запрашивает у пользователя заголовки двух столбцов таблицы.Выведите заголовки столбцов.(1 балл)
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) Запрашивать у пользователя данные.Точки данных должны быть в следующем формате: строка, int.Сохраните информацию до запятой в строковую переменную, а информацию после запятой в целое число.Пользователь введет -1, когда они закончат вводить точки данных.Выведите данные точек.Сохраните строковые компоненты точек данных в списке строк.Сохраните целочисленные компоненты точек данных в списке целых чисел.(4 балла)
Ex:
Enter a data point (-1 to stop input):
Jane Austen, 6
Data string: Jane Austen
Data integer: 6
(4) Выполните проверку ошибок для записей точек данных.Если возникает какая-либо из следующих ошибок, выведите соответствующее сообщение об ошибке и снова запросите правильную точку данных.• Если в записи нет запятой • Вывод: Ошибка: в строке нет запятой.(1 pt) • Если запись содержит более одной запятой • Вывод: ошибка: слишком много запятых при вводе.(1 pt) • Если запись после запятой не является целым числом • Вывод: ошибка: запятая не сопровождается целым числом.(2 балла)
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
(4) Вывести информацию в отформатированную таблицу.Заголовок выровнен по правому краю с минимальным значением ширины поля 33. Минимальное значение ширины поля столбца 1 равно 20. Минимальное значение ширины поля столбца 2 составляет 23. (3 точки)
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
(5) Вывести информацию в виде отформатированной гистограммы.Каждое имя выровнено по правому краю с минимальным значением ширины поля 20. (4 балла)
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 *
Моя попытка заключается в следующем: закомментированные разделы - это то, что я пробовал или пытался.
title = input("Enter a title for the data:\n")
print('You entered:',title)
col1 = input("\nEnter the column 1 header:\n")
print('You entered:',col1)
col2 = input("\nEnter the column 2 header:\n")
print('You entered:',col2)
datapoint = input("\nEnter a data point (-1 to stop input):\n")
while datapoint != '-1':
if datapoint == '-1':
break
my_dict = {}
if ',' not in datapoint:
#hasComma = False
print('Error: No comma in string.\n')
datapoint = input("Enter a data point (-1 to stop input):\n")
else:
#hasComma = True
split = datapoint.split(',')
first = split[0].strip()
second = split[1].strip()
my_dict[first] = second
#while hasComma == False:
# print('Error: No comma in string.\n')
# datapoint = input("Enter a data point (-1 to stop input):\n")
#while hasComma == True:
# split = datapoint.split(',')
# first = split[0].strip()
# second = split[1].strip()
# my_dict[first] = second
print("Data string:",first)
print("Data integer:",second)
break
#print("Data string:",first)
#print("Data integer:",second)
Я понимаю, что мой код очень небрежный, я новичок в этом.Как сейчас, я получаю правильно 6/17.Итак, первые три части задания работают, но все после этого неполное.Мне нужна помощь в исправлении моих циклов, чтобы я мог читать последовательные входы и проверять ошибки на каждом входе.Как только они сработают, я смогу самостоятельно составить таблицу и гистограмму.