2016-03-25 3 views
0

So wie dieser es zu bekommen ich versuche, in Python 3 zu sehen:Translating eine Liste von Zahlen zu einem Grafikformat (#)

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: # # # # # # # 

Und ich geschrieben habe dies bisher:

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() 

Aber wenn ich es laufen lasse, hat es einen Fehler und ich bin ehrlich gesagt an diesem Punkt fest, was zu tun ist. Wenn mir jemand dabei helfen könnte, würde ich das sehr schätzen! Danke für alle, die mir dabei helfen können!

+0

Was ist der Fehler, den Sie sehen? – poke

+0

Bitte lösche keine Fragen, nachdem du eine Antwort erhalten hast. – MattDMo

+0

Bitte lösche keine Fragen, nachdem sie gelöst wurden, sondern [akzeptiere eine Antwort] (http://meta.stackexchange.com/a/5235/141542). Das Löschen eigener Fragen tut nur weh, und die Fragen waren nicht einmal schlecht, also gibt es wirklich keinen Grund, sie zu löschen. – poke

Antwort

1
def car_count_graphic_format(graphic): 
    for x in range(graphic): 
     graphic = "#" * graphic 
     print("Hour #:" ,graphic,) 

sollten Sie vorsichtig sein, da Sie die Namen wiederverwenden graphic viel zu oft für verschiedene verwirrende Dinge.

Die Funktion nimmt eine Liste der Fahrzeugzählungen für jede Stunde, also nennen wir dieses Argument car_counts. Wir wollen für jeden Eintrag eine Zeile ausgeben, also müssen wir über die Elemente in car_counts iterieren. Beachten Sie, dass wir range(car_counts) hier nicht verwenden können, da car_counts eine Liste ist, aber range() eine Zahl erwartet. Stattdessen können wir einfach direkt über die Liste iterieren, um jedes Element in jeder Iteration zu erhalten. Da wir auch die Stunde notieren wollen, verwenden wir enumerate(), um auch den Index des Elements in der Liste zu erhalten. Da die Stunden bei 1 beginnen, sagen wir enumerate() bei 1 zu zählen beginnen:

for hour, count in enumerate(car_counts, start=1): 
    graphic = '# ' * count 
    print('Hour #{}: {}'.format(hour, graphic)) 

Schließlich wollen wir auch den Durchschnitt herausfinden, so zählen wir die Gesamtzahl der Autos, und dann teilen später durch die Anzahl Stunden (die Länge der Liste) die durchschnittliche Auto Zahl erhalten:

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)) 

Schließlich ist zu beachten, dass Sie tun nicht Ihre hourlist in der number_cars Funktion sortiert werden soll, oder Sie werden die Informationen, die Auto Zählung verlieren gehört zu welcher Stunde.

+0

Vielen Dank für die Hilfe! – user6111799

+0

@ user6111799 Wenn diese Antwort [adressiert Ihr Problem] (http://stackoverflow.com/help/someone-answers), bitte beachten Sie [akzeptieren] (http://meta.stackexchange.com/questions/5234), indem Sie auf klicken auf das Häkchen/Häkchen links neben der Antwort und grün. Dies markiert die Frage als zu Ihrer Zufriedenheit gelöst und vergibt [Reputation] (http://stackoverflow.com/help/whats-reputation) sowohl an Sie als auch an die Person, die geantwortet hat. – MattDMo

Verwandte Themen