Im vorherigen Artikel (https://qiita.com/makky0620/items/73a566580b229c119675) habe ich * Time Calculator * herausgefordert, diesmal * Budget App *.
Was erforderlich ist, ist wie folgt
--Erstellen einer Kategorieklasse
*************Food*************
initial deposit 1000.00
groceries -10.15
restaurant and more foo -15.89
Transfer to Clothing -50.00
Total: 923.96
--create_spend_chart Methode: Anzeige wie folgt
Percentage spent by category
100|
90|
80|
70|
60| o
50| o
40| o
30| o
20| o o
10| o o o
0| o o o
----------
F C A
o l u
o o t
d t o
h
i
n
g
Es ist erforderlich, die Methode str.format vollständig zu verwenden, um das Format mit der Methode str und der Methode create_spend_chart der Category-Klasse zu ordnen.
--Indexnummer
--'{0} {1} {0}'. Format ('Banane', 'Apfel')
---> Banane Apfel Banane
'{:> 20}'. Format ('test')
'{: <20}'. Format ('test')
'{: ^ 20}'. Format ('test')
'{: -> 20}'. Format ('test')
'{: 010d}'. Format (100)
'{:.2f}'.format(1.234567)
*************Food************* <-Header
initial deposit 1000.00 -|
groceries -10.15 |-Körper
restaurant and more foo -15.89 |
Transfer to Clothing -50.00 -|
Total: 923.96 <-gesamt
Teilen wir es in drei Teile: Header, Body und Total. Die Bedingungen sind wie folgt
--Header besteht aus 30 Zeichen
category_name = 'Food'
ledger = [...] #Liste der Objekte mit Menge und Beschreibung
def __str__(self):
header = '{:*^30}'.format(category_name)
body = ['{:<23}{:>7.2f}'.format(item.description, item.amount) for item in ledger]
total = sum([item.amount for item in ledger])
return header + '\n' + '\n'.join(body) + '\n' + 'Total: {}'.format(total)
Es war erfrischend, weil ich es normalerweise nicht mit Konsolenausgabe visualisiere. Bitte versuchen Sie es mit der Methode create_spend_chart.
Die nächste Ausgabe ist * Polygon Area Calculator *.
Recommended Posts