Reputation: 33
I am solving a Python exercise about class:
Define a class called Bank that accepts the name you want associated with your bank account in a string, and a float that represents the amount of money in the account. The constructor should initialize two instance variables from those inputs: name and amt. Add a string method so that when you print an instance of Bank, you see “Your account, [name goes here], has [start_amt goes here] dollars.” Create an instance of this class with "Bob" as the name and 100.0 as the amount. Save this to the variable t1.
I wrote the following:
class Bank:
def __init__(self, name, amt):
self.name = name
self.amt = amt
def __str__(self):
return "Your account, {}, has {} dollars.".format(self.name, self.amt)
t1 = Bank("Bob", 100.0)
print(t1)
And the result I get is "Your account, Bob, has 100 dollars.
"
But the correct answer is "Your account, Bob, has 100.0 dollars.
"
How can I do to fix it? Thank you!
Upvotes: 3
Views: 1121
Reputation: 71570
Or hack it:
return "Your account, {}, has {}.0 dollars.".format(self.name, self.amt)
Or use float
:
return "Your account, {}, has {} dollars.".format(self.name, float(self.amt))
Upvotes: 1
Reputation: 16593
You can change your format
:
def __str__(self):
return "Your account, {0}, has {1:.1f} dollars.".format(self.name, self.amt)
Check out the Format Specification Mini-Language.
Upvotes: 5