我正在制作一个Lab程序,要求创建一个程序,要求打印输入的分数(用逗号分隔),并在每次列出分数时添加星号。我列出的程序很简短,看起来应该可行,但是我在这个问题上遇到麻烦,如果我把这个问题弄得太简单了。任何人都可以帮助解决为什么这不起作用以及在这里做什么的想法?
test_scores = input("Enter test scores: ").split(",")
for num in range(0,101):
count = test_scores.count(num)
if count > 0:
print(num)
已完成的计划:
test_scores = input("Enter test scores: ").split(",")
a_set = sorted(set(test_scores))
test_scores.sort()
for score in a_set:
x = test_scores.count(score)
print(score,('*'*x))
答案 0 :(得分:0)
由于这是一项任务,我不想为您编写实验室代码,因此我将概述您可以实施的方法。这是最简单的方式(imo)给出你的评论你说直方图但列出得分(asterisks = num appearances)......
如果你想要一个实际的直方图放到操作系统中,其中的分数与“条形”垂直对齐,这将是高度=数字出现的星号,那么这将需要额外的工作。因此,我将概述您在评论中列出的内容的方法。
你的第一行可以获得分数列表并将它们分成一个列表(假设用户输入正常)
你正在迭代1-100,这是所有可能的分数。冗余imo,为什么不对列表进行排序,然后打印出所需星号数字?
提示:sort
在这里很方便,您可以通过执行(例如)
for element in aSortedList:
#do something with "element"
对于字符串调用,您可以对{num}重复自身的字符串执行(string) * (num)
。
提示:如您所见,您可以使用count
获取列表中出现的次数。然后使用(string) * (num)
。
你去。