2016-03-25 6 views
0

私はそれは、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() 

しかし、私はそれを実行するたびに、それはエラーがあり、私は正に、この時点で何をすべきかについて固執しています。誰かがこれで私を助けることができたら、私はそんなに感謝します!これで私を助けてくれる人に感謝します!

+0

表示されるエラーは何ですか? – poke

+0

回答を受け取った後で質問を削除しないでください。 – MattDMo

+0

解決済みの質問を削除しないでください。[回答を受け入れる](http://meta.stackexchange.com/a/5235/141542)。あなた自身の質問を削除することは自分自身を傷つけるだけであり、質問は悪くないので、本当に削除する理由はありません。 – poke

答えて

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

あなたはあまりにも頻繁に-の名前graphicを再利用しているさまざまな混乱を招くもの、ここで注意しなければなりません。

この関数は、1時間あたりの車のカウントのリストを取ります。その引数はcar_countsです。各エントリの行を出力したいので、要素の繰り返しをcar_countsにしなければなりません。 car_countsがリストですが、range()には数字が必要なので、ここではrange(car_counts)を使用できません。代わりに、リストを繰り返し処理するだけで、各反復で要素内の各要素を取得できます。時間もメモしたいので、enumerate()を使用して、リスト内の要素のインデックスも取得します。

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

最後に、我々はまた、平均を知りたいので、私たちは車の合計数をカウントし、その後数で割る:時間は1から始まりますので、我々は1でカウントを開始しenumerate()を伝えます時間の(リストの長さ)の平均車の数を取得する:

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機能であなたの​​をソートする必要はありませか、またはあなたは情報の車の数を失うことになることに注意してくださいどの時に属しているか。

+0

ありがとうございました! – user6111799

+0

@ user6111799この回答が[あなたの問題を解決しました](http://stackoverflow.com/help/someone-answers)の場合は、[同意します](http://meta.stackexchange.com/questions/5234)をクリックしてください答えの左側にあるチェックマーク/目盛りに緑色に変えてください。これは、あなたと満足して解決された問題と、あなたと回答した人の両方に[評判](http://stackoverflow.com/help/whats-reputation)賞を与えます。 – MattDMo