我提供了下面的代码。
想要做的是运行第一个输入框,它会检查条件,如果为真,它将转到下一个输入(),但如果不是,它将再次运行代码。问题是第一个 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
答案 0 :(得分:2)
问题在于您的 lol()
函数从未被调用,因此它将无限期地停留在第一个 while 循环中。
答案 1 :(得分:1)
lol()
函数从未像 Tim 所说的那样被调用input()
函数返回字符串值,您可以将 str 更改为浮点`
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