所以我试图让它在python 3:中看起来像这样
How many hours are in your sample? 7
Enter the count of cars for hour #1: 2
Enter the count of cars for hour #2: 5
Enter the count of cars for hour #3: 9
Enter the count of cars for hour #4: 11
Enter the count of cars for hour #5: 12
Enter the count of cars for hour #6: 6
Enter the count of cars for hour #7: 5
Hour #1: # #
Hour #2: # # # # #
Hour #3: # # # # # # # # #
Hour #4: # # # # # # # # # # #
Hour #5: # # # # # # # # # # # #
Hour #6: # # # # # #
Hour #7: # # # # #
Average: # # # # # # #
到目前为止,我已经写了这篇文章:
def main():
hourlist = number_cars()
graphic = hourlist
car_count_graphic_format(graphic)
def number_cars():
hours = input("How many hours are in your sample? ")
hours = int(hours)
hourlist = []
for i in range(hours):
hourcount = input("Enter the count of cars for hour #" +str(i+1)+ ": ")
hourcount = int(hourcount)
hourlist.append(hourcount)
hourlist.sort()
return hourlist
def car_average(car_count):
car_sum = 0
for position in range(len(car_count)):
car_sum = car_sum + car_count[position]
average = car_sum / len(car_count)
return average
def car_count_graphic_format(graphic):
for x in range(graphic):
graphic = "#" * graphic
print("Hour #:" ,graphic,)
main()
但每当我运行它时,它都会出错,我真的陷入了该怎么办的困境。如果有人能帮我,我将不胜感激!感谢所有能够帮助我的人!
def car_count_graphic_format(graphic):
for x in range(graphic):
graphic = "#" * graphic
print("Hour #:" ,graphic,)
在这里您应该小心,因为graphic
这个名称重复使用的频率太高了——导致了不同的混乱。
该函数获取每小时的汽车计数列表,因此让我们调用该参数car_counts
。我们想为每个条目打印一行,所以我们必须迭代car_counts
中的元素。注意,我们不能在这里使用range(car_counts)
,因为car_counts
是一个列表,但range()
需要一个数字。相反,我们可以直接迭代列表,在每次迭代中获得列表中的每个元素。由于我们还想记下时间,所以我们使用enumerate()
来获取列表中元素的索引。由于小时从1开始,我们告诉enumerate()
从1:开始计数
for hour, count in enumerate(car_counts, start=1):
graphic = '# ' * count
print('Hour #{}: {}'.format(hour, graphic))
最后,我们也想找出平均值,所以我们计算汽车总数,然后除以小时数(列表的长度),得到平均汽车数:
def car_count_graphic_format(car_counts):
total_cars = 0
for hour, count in enumerate(car_counts, start=1):
total_cars += count
graphic = '# ' * count
print('Hour #{}: {}'.format(hour, graphic))
average = round(total_cars / len(car_counts))
graphic = '# ' * average
print('Average: {}'.format(graphic))
最后请注意,您确实不希望在number_cars
函数中对hourlist
进行排序,否则您将丢失哪个车辆计数属于哪个小时的信息。