1

Ich schreibe ein Programm, das zählt, wie oft jeder Buchstabe getippt wird, um mir bei der Frequenzanalyse zu helfen. Mein Programm funktioniert, aber es gibt immer einen Teil meiner Antworten entlang einer kurvigen Linie aus. Beispiel Ausgabe:Wie kann ich meine Daten entlang einer Linie mit Python 3 anzeigen lassen?

Length of message: 591 characters 
A 11 1% 
B 27 4% 
C 37 6% 
D 2 0% 
E 2 0% 
F 5 0% 
G 17 2% 
H 8 1% 
I 9 1% 
J 49 8% 
L 7 1% 
M 44 7% 
N 20 3% 
P 42 7% 
Q 6 1% 
R 36 6% 
S 1 0% 
U 6 1% 
V 22 3% 
W 13 2% 
X 56 9% 
Y 11 1% 

ich den folgenden Code verwenden:

text = input() 
symbols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
letters = collections.Counter(text.upper()) 
length = len(text) 
print('Length of message: {} characters'.format(length)) 
for letter, times in sorted(letters.items()): 
    if letter not in symbols: 
     continue 
    percent = str(int((times/length) * 100)) + '%' 
    print(letter, times, percent) 

Ich versuche es, so etwas zu bekommen angezeigt:

A 11 1% 
B 27 3% 
C 37 6% 
D 2 0% 
E 2 0% 
F 5 0% 
G 17 2% 
H 8 1% 
I 9 1% 
J 49 8% 
L 7 1% 
M 44 7% 
N 20 3% 
P 42 7% 
Q 6 1% 
R 36 6% 
S 1 0% 
U 6 1% 
V 22 3% 
W 13 2% 
X 56 9% 
Y 11 1% 

Vielen Dank im Voraus!

Antwort

0

Hängt davon ab, wie Sie es anzeigen möchten. Eine Möglichkeit wäre das Hinzufügen von Tabs in der print-Anweisung.

Zum Beispiel:

print(letter,"\t", times,"\t", percent) 
1

Um Pad mit einer Anzahl von Räumen:

print(('{:<2}{:<3}{:<3}').format(letter, times, percent)) 
0

Da Sie Python 3.6 markiert, verwenden Sie die neue f-strings:

import collections 

text = input() 
symbols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
letters = collections.Counter(text.upper()) 
length = len(text) 
print(f'Length of message: {length} characters') 
for letter, times in sorted(letters.items()): 
    if letter not in symbols: 
     continue 
    percent = times/length 
    print(f'{letter} {times:2} {percent:5.1%}') 

Es gibt keine müssen die Prozentzeichenfolge manuell berechnen. Berechnen Sie einfach den Gleitkommawert percent = times/length und verwenden Sie die richtige Formatierung in der f-Zeichenfolge.

{percent:5.1%} bedeutet: Einfügen "Prozent" Variable hier in einem Feld der Breite 5, mit einer Stelle nach dem Komma. % ist ein Formatbezeichner, der die Zahl mit 100 multipliziert und ein Prozentzeichen hinzufügt. {letter} wird ohne spezielle Formatierung eingefügt, und {times:2} erstellt ein 2-breites Feld, das standardmäßig für Zahlen rechtsbündig ausgerichtet ist.

Ausgang des Eingangs "abbbbbbbbbbccc":

Length of message: 14 characters 
A 1 7.1% 
B 10 71.4% 
C 3 21.4% 

Siehe auch:

Verwandte Themen