即使在满足条件后,while 循环也不会中断

时间:2021-04-23 12:22:16

标签: python python-3.x

我提供了下面的代码。

想要做的是运行第一个输入框,它会检查条件,如果为真,它将转到下一个输入(),但如果不是,它将再次运行代码。问题是第一个 input() 运行良好,但第二个没有退出我正在检查输入是否为整数的循环

class AC ():
    
     
    def __init__(self):
        
        self.owner=input("Enter The Name: ")
        
        while True:
            if self.owner.isalpha():
                self.balance=(input("Enter The Amount: "))
                def lol():
                    while True:
                        if self.balance.isdigit():
                             break
                        else:
                            print("Enter The Amount: ") 
                            lol()
                            break
                        
            
            else:
                
                AC()
                break

2 个答案:

答案 0 :(得分:2)

问题在于您的 lol() 函数从未被调用,因此它将无限期地停留在第一个 while 循环中。

答案 1 :(得分:1)

  1. lol() 函数从未像 Tim 所说的那样被调用
  2. input() 函数返回字符串值,您可以将 str 更改为浮点
  3. 试试这个:

`

def __init__(self):
    self.owner = input("Enter The Name: ")


    while True:
        if self.owner.isalpha():
            self.balance = input("Enter The Amount: ")
            def lol():
                while True:
                    try:
                        self.balance = float(self.balance)
                    except ValueError:
                        break
            if self.balance.isdigit():
                break
            else:
                lol()
        else:
            AC()
            break