Search code examples
pythonooppycharmf-string

Getting Different Output when i use f string in python



    #Make a class that represents a bank account. Create four methods named set_details, display, withdraw and deposit.
    #     In the set_details method, create two instance variables : name and balance. The default value for balance should
    #     be
    # zero. In the display method, display the values of these two instance variables.
    #
    #     Both the methods withdraw and deposit have amount as parameter. Inside withdraw, subtract the amount from balance
    # and inside deposit, add the amount to the balance.
    #
       # Create two instances of this class and call the methods on those instances.
    class bank:

        def set_details(self, name, balance=0):
            self.name = name,
            self.balance = balance,


        def display(self):
            print(f"name = {self.name}. Balance = {self.balance}"),



        def withdraw(self, a):
            self.balance -= a,
            print(f"Balance after withdrawn {self.balance}")


        def deposite(self, b):
            self.balance += b,
            print(f"Balance after deposite {self.balance}")

    ankit = bank()
    ankit.set_details("ankit", "2300")
    ankit.display()

output

(venv) C:\Users\admin\PycharmProjects\ankitt>bank.py name = ('ankit',). Balance = ('2300',)

output wanted name = ankit. balance = 2300

why the round brackets appears with the quotes and commas


Solution

  •     def set_details(self, name, balance=0):
                self.name = name,
                self.balance = balance,
    

    Remove the commas after both assignments. Having the commas there assigns them as tuples rather than their actual type.

    Also, as Marcel Wilson mentioned in the comments, remove the commas from withdraw and deposite as well.

            def withdraw(self, a):
                self.balance -= a,
                print(f"Balance after withdrawn {self.balance}")
    
    
            def deposite(self, b):
                self.balance += b,
                print(f"Balance after deposite {self.balance}")