import math
def eval_loop():
while True:
s = input('enter your str:\n')
if s == 'done':
print('done')
break
result = eval(s)
print(result)
eval_loop()
eval_loop()
运行之后,第一次就输入done
,就结束了,如果第一次不是输入done
,那么再输入done
,程序还会继续运行,这个情况是为啥呢。。
E:--->python helloworld.py
enter your str:
done
done
E:--->python helloworld.py
enter your str:
1+2
3
enter your str:
done
done
enter your str:
1
yangtukun1412 2016-07-19 18:23:05 +08:00
递归调用或者死循环去掉一个
|
2
Yinz 2016-07-19 18:25:10 +08:00
倒数第二行又调用了一次函数,递归调用了,你这样每多输入一次非'done'字符,你就需要多输一次'done'来跳出循环,改成这样就好了
import math def eval_loop(): while True: s = input('enter your str:\n') if s == 'done': print('done') break result = eval(s) print(result) eval_loop() |
3
Pzdmultiverse OP |
4
jixiangqd 2016-07-20 12:50:28 +08:00
好像除了代码是 python 写的跟 python 并没啥关系。。。
|
5
Pzdmultiverse OP @jixiangqd 是这样,标题该写成[新手编程疑问贴]…😂
|
6
jixiangqd 2016-07-20 15:20:55 +08:00
@Pzdmultiverse 加油~
|
7
Pzdmultiverse OP @jixiangqd 共勉~-.-
|