看完大大的解答才知道原来我写的计算器太“死”了,只能实现固定的程序,如果需要改数据,得重新编程,这是一件非常麻烦的事情。所以大大的高配版计算器是能手动输入算式的,甚至可以不用每次点执行,实现循环输入。
python大大的图
我的图
这么写虽然能实现自定义输入,但是每一次输入前都要点执行。这里出了两个比较生的函数raw_input()和eval()
关于input()和raw_input()的区别可以参考http://www.cnblogs.com/way_testlife/archive/2011/03/29/1999283.html
自己输一下代码就能理解它们的差别了
input() 本质上还是使用 raw_input() 来实现的,除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
eval()是一个很神奇的函数,它可以把字符串str当成有效的表达式来求值并返回计算结果。而且它可以把字符串转化为列表、字典或者元组。网上有很多解析都写得非常详细。在这里的用法就相当于做加减乘除那些运算。
https://www.cnblogs.com/liu-shuai/
http://blog.csdn.net/qq_29883591/article/details/53443062
这么写是很麻烦的,每一个算式都要点执行。于是大大又给出了一种更高端的写法
这里的逻辑在这里。用一个无限的循环把接收输入的语句“困”起来,然后就可以不停的来接收我们输入,然后输出计算结果了。以while 1打头的循环将不断运行,直到遇到break语句,这个程序中的循环不断输入算式,直到用户输入0为止。用户输入0后将执行break语句,导致python跳出循环。