【发布时间】:2019-02-24 16:16:14
【问题描述】:
接下来是我一整天都被难倒的家庭作业和我的代码。我可能试图以错误的方式解决这个问题。你们能告诉我我做错了什么吗?
(1) 提示用户输入数据标题。输出标题。 (1分)
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) 提示用户输入数据点。数据点必须采用以下格式:字符串、整数。将逗号之前的信息存储为字符串变量,将逗号之后的信息存储为整数。用户输入完数据点后将输入 -1。输出数据点。将数据点的字符串组件存储在字符串列表中。将数据点的整数分量存储在整数列表中。 (4分)
Ex:
Enter a data point (-1 to stop input):
Jane Austen, 6
Data string: Jane Austen
Data integer: 6
(4) 对数据点条目进行错误检查。如果出现以下任何错误,则输出相应的错误消息并再次提示输入有效数据点。 • 如果条目没有逗号 • 输出:错误:字符串中没有逗号。 (1 分) • 如果条目有多个逗号 • 输出:错误:输入中的逗号过多。 (1 分) • 如果逗号后的条目不是整数 • 输出:错误:逗号后面没有整数。 (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 的正确率。所以任务的前三个部分是有效的,但之后的一切都不完整。我需要帮助修复我的循环,以便我可以读取连续的输入并检查每个输入的错误。一旦这些工作正常,我应该能够自己找出表格和直方图。
【问题讨论】:
标签: python python-3.x loops while-loop