Ich soll eine Quittung im String-Format erstellen, die dann an das Hauptprogramm zurückgegeben wird, das es dann ausgibt.Mehrzeiliger String-Einzug mit .format()
Also, ich habe zwei Strings, die in die Preise mit \ n enthalten zwischen jedem:
food_prices = "\n22.40\n13.40\n"
drink_prices = "\n11.50\n6.90\n"
Sie aus Listen mit Float-Werten erstellt wurden - Ich habe versucht, dies zu tun mit for-Schleifen, aber ich hat es nie zur Arbeit gebracht; alles, was ich bekam, waren unglaublich fehlerhafte Ausdrucke, nachdem der Quittungsstring an das Hauptprogramm weitergegeben wurde.
Ich versuche, sie mit .format() zu formatieren, so dass jeder auf einer eigenen Zeile gedruckt wird (aufgrund der \ n), nach rechts mit 16 Leerzeichen von "Raum" eingerückt. Beispiel dafür, was die Ausgabe sein soll:
123456789# For readability, ignore
Food:
22.40
13.40
Drinks:
11.50
6.90
------------------------------
Total 54.20
Was habe ich versucht:
receipt = (...
"Food:\n"
"{:>16}"
"Drinks:\n"
"{:>16}"
"------------------------------\n"
"{:>7.2f}"
"Total {:>7.2f}\n").format(food_prices, drink_prices, total)
Was die Ausgabe wie folgt aussieht:
Food:
12.4
5.43
7.65
Drinks:
5.4
8.76
5.4
------------------------------
Total 45.04
Die Vertiefung mit funktioniert nur einem einzigen Preis in der Zeichenfolge ("\ n0.00 \ n"), obwohl. Ich bin mir nicht ganz sicher, wie das gemacht werden soll/kann. Ich habe auf die offizielle Dokumentation (und PEP) verwiesen und etwas Googeln gemacht.