python - 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。
解决方案
推荐阅读
- windows-10 - 从命令行启动“将文件类型或协议与程序关联”应用程序
- ios - 将 UIViews 放在前面
- bash - 用于更新最后一个字符的 Bash 脚本
- azure-active-directory - 在 Azure AD B2C 中刷新令牌吊销
- reactjs - 在 react-bootstrap@1.0.0-beta.5 中渲染 Nav.Link 时出错
- java - java: super 必须是构造函数中的第一个
- google-docs-api - 将信息从侧边栏移动到光标位置
- opengl - Embarcadero Windows 库和包
- python - Python 随机跳过循环迭代
- css - 使用 -webkit-overflow-scrolling 拖动元素顶部的元素会导致底层元素滚动