Python 之迷你计算器

相信很多小朋友都已经学习过加减乘除的运算了吧,计算能力是数学学习的基础。而计算机最擅长做的事情其实就是这些计算能力。相比于人类大脑,计算机更加适合记忆和计算,因此,我们完全可以考虑把这些事情外包给计算机,今天我们就一起做一个迷你计算器,把那些费脑的计算都交给电脑吧。今天的计算器运行后如下图:

当你运行程序后,首先会显示第一行蓝色的文本,提示你输入需要计算的公式,这里给出的公式是 3*(5-2),接下来蓝色的文本就给出了这个公式的结果。此处的公式你可以输入任何可计算的数据公式,不过运算符号要按照Python公式符号输入,公式中的运算符号与Python 语言符号对应表如下:

相信大家已经迫不及待想要看一下这个迷你而强大的计算器到底是如何实现的,他整个代码只有三行,如下:

formula = input("Please input your formula\n\n")

result = eval(formula)

print("The result of your formula is:", result)

第一行语句是一条输入语句,其主要作用就是接受用户输入的字符串,当你需要让用户输入的时候,往往需要先给用户一个提示语,以方便让用户知道输入什么内容,因此大家可以看到input 函数在接受用户输入的同时,还有一个参数,这个参数就是给用户的提示语,在这个例子中就是"Please input your formula" 这个提示语。大家可能已经注意了,这条提示语的后面还有两个 "\n" 符号,这个在Python 语言中叫做换行符,顾名思义,他的作用就是换一个新行。有了这两个换行符,排版看起来就舒服很多了。

当你看到第一行的提示符,并且输入公式,然后按回车键之后,你的输入就保存到了formula 中; 相当于用formula 这个标签代表了你输入的公式。这个formula 在Python 中叫做**变量**。顾名思义,变量是可以改变的,他会根据你的不同输入而不同。在演示Demo 中,当我输入 3*(5-2)后,formula 就等于这个值了。

第二行语句真正进行了计算工作,这条语句是计算器的核心,他能够识别用户输入的公式,并且计算出结果,保存在result 变量中。

这里有一个很重要的概念大家需要区分,就是字符串和数字。电脑必须要区分这两种类型。所谓的字符串,就是大家经常看到的文字和语句。而数字类型就表示实际的某个数字。数字类型的变量是可以计算的,而文字类型的变量是不能计算的。在Demo中,当你输入 3*(5-2) 的时候,这个时候电脑首先把他以字符串形式保存在formula 中,第二行eval 函数则拆分这个表达式,对其进行计算,最终把数字结果保存在result中。 大家可以理解到,**字符串类型**就代表一串字符,包括文字,数字,标点符号等。而**数字类型**则代表真实的一个数字,在Demo中 3*(5-2)这个公式本身是一个字符串,而这个公式的计算结果则是一个数字。

第三条语句是结果输出语句。程序把公式计算结果输出给用户。

总结一下,今天大家通过迷你计算器程序的学习,接触了以下几个概念:

文本输入和输出。提示用户输入信息使用input 函数,输出内容则使用print 函数。

变量的使用。变量就是代表某一个值的标签,这个值可能是数字,也可能是字符串,为了能够更方便的标示这个值,就使用一个自己命名的变量来表示它,这样方便用户记忆。例如Demo中的 3*(5-2)这个输入公式,如果不使用formula这个变量标示,那我们在下一行(eval函数)使用它的时候,就很麻烦了。

数字类型和字符串类型。任何两个数字类型的变量都可以进行加减乘除等数学操作运算,而字符串类型是不能进行这些数字运算的。

"\n"回车符表示的是换行

最后给大家出几道课后练习,可以在电脑上操作一下,从而更好的理解本章的内容:

回车符练习;

Demo中第一条语句中使用了两个回车符号,你试着减少一个回车符号,看看程序运行有什么变化;

加深理解变量和类型;

我们把程序修改一下,做一个固定的乘法运算器,来感受下程序的执行。

first = eval(input("Please input first number\n"))

second = eval(input("Please input second number\n"))

result = first * second

print("The result of your formula is:", result)

在以上Demo 中,first 和second 两个变量就是数字类型;你试验下在第一条语句或者第二条语句中把 eval去掉,看看程序是否能够正常运行?如果不能运行,请考虑下原因。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180114G09OTS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励