2016-04-25 5 views
0

コードを実行しようとしたときにエラーメッセージが表示されました(私のprevious questionから続きました)、問題の正確な内容を特定できません。それはValueErrorだと言いますが、正確にどちらが正しいかわかりません。たぶん遅れたかもしれませんが、私は迷っています。私は出力フォーマットをどこでうまくやっていますか?

は、ここに私のコードです:

def sort(count_dict, avg_scores_dict, std_dev_dict): 
    '''sorts and prints the output''' 
    menu = menu_validate("You must choose one of the valid choices of 1, 2, 3, 4 \n  Sort Options\n 1. Sort by Avg Ascending\n 2. Sort by Avg Descending\n 3. Sort by Std Deviation Ascending\n 4. Sort by Std Deviation Descending", 1, 4) 
    print ("{0}{1:27}{2:39}{3:51}\n{4}".format("Word", "Occurence", "Avg. Score", "Std. Dev.", "="*51)) 

    if menu == 1:  
     dic = OrderedDict(sorted(word_avg_dict.items(), key=lambda x:x[1], reverse=False)) 
     for key in dic: 
      print ("{0}{1:27}{2:39:.4f}{3:51:.4f}".format(key, count_dict[key], avg_scores_dict[key], std_dev_dict[key])) 
    elif menu == 2: 
     dic = OrderedDict(sorted(word_avg_dict.items(), key=lambda x:x[1], reverse=True)) 
     for key in dic: 
      print ("{0}{1:27}{2:39:.4f}{3:51:.4f}".format(key, count_dict[key], avg_scores_dict[key], std_dev_dict[key])) 
    elif menu == 3: 
     dic = OrderedDict(sorted(std_dev_dict.items(), key=lambda x:x[1], reverse=False)) 
     for key in dic: 
      print ("{0}{1:27}{2:39:.4f}{3:51:.4f}".format(key, count_dict[key], avg_scores_dict[key], std_dev_dict[key])) 
    elif menu == 4: 
     dic = OrderedDict(sorted(std_dev_dict.items(), key=lambda x:x[1], reverse=True)) 
     for key in dic: 
      print ("{0}{1:27}{2:39:.4f}{3:51:.4f}".format(key, count_dict[key], avg_scores_dict[key], std_dev_dict[key])) 

    return None 

私はそれを実行したときにここに私の出力とエラーがあります:私は

You must choose one of the valid choices of 1, 2, 3, 4 
     Sort Options 
    1. Sort by Avg Ascending 
    2. Sort by Avg Descending 
    3. Sort by Std Deviation Ascending 
    4. Sort by Std Deviation Descending1 
WordOccurence     Avg. Score        Std. Dev.           
=================================================== 
Traceback (most recent call last): 
    File "C:\Users\Ryan\Documents\Program 7\Program 7.py", line 161, in <module> 
    output = sort(cnt_dict, word_avg_dict, std_dev_dict) 
    File "C:\Users\Ryan\Documents\Program 7\Program 7.py", line 104, in sort 
    print ("{0}{1:27}{2:39:.4f}{3:51:.4f}".format(key, count_dict[key], avg_scores_dict[key], std_dev_dict[key])) 
ValueError: Invalid format specifier 

をめちゃくちゃにしていますか?すべての助けをいただければ幸いです!

+0

重複しないでください。新しいValueError、updated code –

+2

これらの変更で最後の質問を更新できました。 – AKS

+0

@AKS - それは、別の問題とは別の問題であり、他の問題の繰り返しではありません。元の質問を新しいタスクで更新すると、連続する各変更でそれほど役に立たなくなります。しかし、この質問へのリンクを追加するとよいでしょう。 – TigerhawkT3

答えて

2

{3:51:.4f}のように、1つの指定フィールドに複数のコロンを使用しないでください。もう1つを削除してください:

>>> print("{0}{1:27}{2:39.4f}{3:51.4f}".format('a', 'b', 1.234567, 9.876543)) 
ab               1.2346            9.8765