当我在 python 中使用 f 字符串时得到不同的输出

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()

输出

(venv) C:\Users\admin\PycharmProjects\ankitt>bank.py 名称 = ('ankit',)。余额 = ('2300',)

需要输出 名称 = ankit。余额 = 2300

为什么圆括号与引号和逗号一起出现

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

删除两个赋值后的逗号。在那里有逗号将它们分配为 tuples 而不是它们的实际类型。

此外,正如 Marcel Wilson 在评论中提到的,也从 withdrawdeposite 中删除逗号。

        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}")