2016-04-25 3 views
0

So habe ich eine Fehlermeldung erhalten, wenn ich versuchte, meinen Code (Fortsetzung von meinem) und ich kann nicht herausfinden, was genau das Problem ist. Es sagt, es ist ein ValueError, aber ich kann nicht herausfinden, welcher genau. Vielleicht ist es nur spät, aber ich bin ratlos.Wo bin ich mit meiner Ausgabeformatierung zu schaffen?

Hier ist mein Code:

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 

Hier ist meine Ausgabe und Fehler, wenn ich es laufen:

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 

Was bin messing ich mich an? Jede und jede Hilfe wird geschätzt!

+0

kein Duplikat. neuer ValueError, aktualisierter Code –

+2

Die letzte Frage konnte mit diesen Änderungen aktualisiert werden. – AKS

+0

@AKS - Es ist ein anderes Problem mit einer anderen Lösung, nicht eine Wiederholung der anderen Frage. Das Aktualisieren der ursprünglichen Frage mit neuen Aufgaben würde es mit jeder nachfolgenden Änderung weniger nützlich machen. Es wäre jedoch gut, in dieser einen Link zu dieser Frage hinzuzufügen. – TigerhawkT3

Antwort

2

Sie sollten nicht mehrere Doppelpunkte in einem einzelnen Spezifikationsfeld haben, wie {3:51:.4f}. Entfernen Sie die zweite:

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