当我在python-2.7中编写这段代码时,我收到了一遍又一遍的消息,有人可以告诉我它有什么问题吗?
num = raw_input("enter your number : ")
def calc():
if num == "1":
print "ok"
else:
print "right"
calc()
calc()
反复打印ok
或right
。
那么如果我想在每次打印后回到初始状态(要求输入),我该怎么办?
答案 0 :(得分:2)
它正在重复,因为你在calc()
函数内再次调用calc()
,使其成为无限循环。
def calc():
if num == "1":
print "ok"
else:
print "right"
calc() # <-- Why is this here?
那么如果我想在每次打印后回到初始状态(要求输入),我该怎么办?
然后你需要在循环中再次询问输入:
def calc():
num = raw_input("enter your number : ")
if num == "1":
print "ok"
else:
print "right"
calc()
calc()
答案 1 :(得分:1)
如果一遍又一遍地调用相同的函数,迟早会出现堆栈溢出。为了无限期地重复某些事情,请使用循环,例如for
或while
。
def calc():
while True:
num = raw_input("enter your number : ")
if num == "1":
print "ok"
else:
print "right"
calc()
您还应该考虑添加一个退出循环的条件。例如,检查输入是"q"
然后执行break
:
while True:
num = raw_input("enter your number : ")
if num == "q":
break
elif num == "1":
print "ok"
else:
print "right"