首页 > 解决方案 > 23.2 项目 2:使用 LOOPS 进行数据可视化

问题描述

该程序将在表格和直方图中显示一组作者和每个作者写的小说数量。您将要求用户提供所有信息。使用您对增量开发的了解,使用以下方法来创建您的程序:

提示用户有关表的信息。首先,通过提示用户输入数据标题来询问该数据集的标题。输出标题。

前任:

Enter a title for the data:
Number of Novels Authored
You entered: Number of Novels Authored

该表将有两列;一个用于作者,一个用于小说数量。提示用户输入表格两列的标题。输出列标题。

前任:

Enter the column 1 header:
Author name
You entered: Author name

Enter the column 2 header:
Number of novels
You entered: Number of novels

提示用户输入数据点。数据点必须是这种格式:string,int,代表作者和作者写的小说的数量。将逗号之前的信息存储为字符串变量,将逗号之后的信息存储为整数。用户输入完数据点后将输入 -1。输出数据点。将数据点的字符串组件存储在字符串列表中。将数据点的整数分量存储在整数列表中。

前任:

Enter a data point (-1 to stop input):
Jane Austen, 6
Author: Jane Austen
Number of Novel(s): 6

对数据点条目执行错误检查,如下所示: 如果条目没有逗号并且不是 -1 输出:错误:字符串中没有逗号。

如果发生错误,则输出相应的错误消息并再次提示输入有效数据点。您可以假设如果存在逗号,则数据点输入正确。

前任:

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
Author: Ernest Hemingway
Number of Novel(s): 9

以格式化表格输出信息。标题右对齐,最小字段宽度值为 33。第 1 列的最小字段宽度值为 20。第 2 列的最小字段宽度值为 23。

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

将信息输出为格式化的直方图。每个名称右对齐,最小字段宽度值为 20。

前任:

         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)

column1 = input("\nEnter the column 1 header:\n")

print('You entered:',column1)

column2 = input("\nEnter the column 2 header:\n")

print('You entered:',column2)

while True:
    datapoint = input("\nEnter a data point (-1 to stop input):\n")
    if datapoint == '-1':
        break


while datapoint != '-1':
    if datapoint == '-1':
        break
    my_dict = {}
    if ',' not in datapoint:

        print('Error: No comma in string.\n')
        datapoint = input("Enter a data point (-1 to stop input):\n")
    else:

        split = datapoint.split(',')
        first = split[0].strip()
        second = split[1].strip()

        my_dict[first] = second

        print("Data string:",first)
        print("Data integer:",second)
        break

这是我到目前为止所拥有的,它只满足 20/100。

标签: python

解决方案


推荐阅读