2017-11-06 4 views
-1

Meine aktuelle Ausgabe dieses unten von Code ist:Python Druck Stimme zählt

Name:vote Greg Chocolate 
Name:vote Teena Macaroons 
Name:vote Will Chocolate 
Name:vote 
Chocolate vote(s): Greg Will 
Macaroons vote(s): Teena 

ich es ausgeben müssen:

Name:vote Greg:chocolate 
Name:vote Teena:macaroons 
Name:vote Georgina:apple pie 
Name:vote Will:chocolate 
Name:vote Sophia:gelato 
Name:vote Sam:ice cream 
Name:vote James:chocolate 
Name:vote Kirsten:gelato 
Name:vote 
apple pie 1 vote(s): Georgina 
gelato 2 vote(s): Sophia Kirsten 
chocolate 3 vote(s): Greg Will James 
macaroons 1 vote(s): Teena 
ice cream 1 vote(s): Sam 

Code:

flavours = {} 
line = input('Name:vote ') 
while line: 
    Name,vote = line.split() 
    if vote not in flavours: 
    flavours[vote] = [Name] 
    else: 
    flavours[vote].append(Name) 
    line = input('Name:vote ') 

for vote in flavours: 
    print(vote,'vote(s)' ':', ' '.join(flavours[vote])) 

Ich verwende grok Lernen, Python zu lernen, und ich bin über dieses Problem ratlos. Ich bin mir nicht sicher, wie man den Doppelpunkt zwischen dem Namen und dem Geschmack unter Verwendung der Eingabe hinzufügt und sie zählen die Stimmen

Antwort

1

Sie können gerade so tun.

print('{}:{}'.format('some','stuff')) 

kehrt

some:stuff 
+0

dies schien nicht zu arbeiten .... Ich bekomme diesen Fehlercode: Name: Abstimmung Greg: Schokolade Traceback (jüngste Aufforderung zuletzt): File "program.py", Zeile 4, in Name, vote = line.split() ValueError: nicht genug Werte zum Entpacken (erwartet 2, erhalten 1 – hendro3

+0

Schwer zu Code zu sehen, aber Sie benötigen eine Reihe von Klammern {} für jede Variable, die Sie an das Format übergeben Zu viel oder zu wenig und du wirst Fehler bekommen – SuperStew

+0

aaaa ok das funktioniert, wenn ich INPUT "Greg Chocolate" sage, aber nicht wenn ich INPUT "Greg: chocolate" – hendro3

0

Im Folgenden Code sollte korrektes Ergebnis zurück.

> print('{} {} vote(s): {}'.format(vote, len(flavours[vote]), ''.join(flavours[vote])))