Fehler drucken ein string: %d format: a number erforderlich ist, nicht str

Ich Plane eine Reise nach Disney World, die später in diesem Sommer, und ich habe versucht, ein Programm zu Berechnung der ungefähren Kosten der Reise für Spaß und um zu versuchen und halten mich vom aufstehen zu rostig. Mein problem ist, dass wenn ich versuche, um alle meine Werte berechnet, ich bekomme immer wieder den Fehler, dass in der überschrift steht. Mein code ist:

###Function to display costs
def Display(days, nights, building_type, person, room_cost,
            room_cost_person, DisneyPark, Hopper, IslandPark,
            IslandPTP, Island_parking, gas_cost, gas_cost_person,
            park_person, Total_cost_person, mpg, gas, downpay):
print('''Cost of trip for a %i day/%i night stay in a %%s%%:
Number of people going:                          %i

Total room cost ($)                              %4.2f
Room cost/person ($)                             %4.2f

Price of Disney World tickets ($)                %4.2f
Price of hopper ticket-Disney ($)                %4.2f
Price of Universal ticket ($)                    %4.2f
      Park-to-Park                               %%s%%
Cost to park at Universal/person ($)             %4.2f

Total cost of gas ($)                            %4.2f
Cost of gas/person ($)*                          %4.2f
Cost to park/person ($)                          %4.2f

Cost of groceries/person ($)^                    %4.2f
Cost to eat out/person ($)^#                     %4.2f
Souvenirs ($)^                                   %4.2f

Total cost of trip/person ($)                    %4.2f

*Factoring in round trip distance (1490 miles), mpg of %i, and average gas cost $%4.2f
#Covers eating out at night, eating in parks (butterbeer, etc), and eating while driving
^Note that these are estimates
%Note that the Villa housing requires a $%4.2f downpayment (refundable) that was not
        included in cost calculations

----------------------------------------------------------------------------------------'''
%(day, night, Building, person, room_cost, room_cost_person, DisneyPark,
  Hopper, IslandPark, IslandPTP, Island_parking, gas_cost, gas_cost_person,
  park_person, Groceries, Eat, Souvenirs, Total_cost_person, mpg, gas,
  downpay))

Ist, habe ich mich an die Vorschläge zu dieser Frage:Python-MySQLdb Probleme (TypeError: %d format: a number erforderlich ist, nicht str) und ich habe versucht, die änderungen angegeben, aber Sie waren nicht von mir geholfen. Ich kann individuell drucken jeden Wert, Prima, aber wenn ich versuche, drucken Sie alle in diesem großen block von text, den ich dann bekommen, mein Fehler. Ich würde schätzen jede Einsicht jedermann zu bieten hat.

Dies wäre viel einfacher, wenn Sie es aufgeteilt in einzelne Zeilen, dann könnte man herausfinden, das ist das problem.
Das ist nicht ein docstring.
Wenn Sie haben so viele Formatbezeichner, dass Sie nicht passen alle Argumente, die in einem einzigen 80-Zeichen-Zeile auch mit den Räumen entfernt, es ist Zeit zu beginnen, mit Namen Formatbezeichner und übergeben eine dict.

InformationsquelleAutor John | 2015-05-11

Schreibe einen Kommentar