《中小学生Python编程入门指南》2.1 设计开发一个计算器
第二章 设计自己的第一个Python应用
1.1 设计开发一个计算器
这一节我们来尝试实现完成一个计算器的应用。毕竟我们是初学者,不可能做得那么完美,也不是真的需要实现,只是想借这一个应用的理解,我们带入一些python的教学和其他的计算机相关知识。
我们先想想,计算器我们需要什么功能?先不想象多么只能的计算器,我们要先实现简单的会加减乘除的就可以了。那么我们就知道了,计算器是要有会加减乘除计算的功能的。那除此之外呢?我们想一下计算的流程,其实就是三个部分组成:①输入、②计算、③输出。好,那我们上一节学习了第一句python语句,知道了输出可以用print。那还差输入和计算。
不知道我们同学有没有用过实体的计算器,不是手机上或者电脑上的应用(application、app)。就是下图这种:
其实我们使用计算器跟我们的电脑,从组成上来说有异曲同工之妙。如果拆过电脑主机或者笔记本电脑的同学应该知道,我们的电脑很复杂,里面包含很多硬件,但是总的来说就只有三种:CPU(处理器)、内存和I/O。CPU和内存相信很多人都听过,那么I/O是什么?I/O其实就是Input/Output,输入/输出设备。CPU就是执行运算和管理控制内存和I/O的设备;内存用来存储指令和数据;I/O则是将类似于键盘、鼠标、显示器等设备和主机连接,实现数据的输入和输出。
那我们接下来用python实现的计算器应用,最难的应该就是如何实现计算。我们先来学习python是不是可以实现我们需要的计算。
比如说,我们先实现加法,3+4看看能否计算。
看起来不行啊,那我们把双引号去掉:
可以了!上节我们解释过了,加引号代表的是字符串,不加引号则是表达式。那我们再试一下可否计算其他运算。
我们可以看到是可以计算的。
那么我们的python能否计算带小数点的数值呢?
我们可以看到,python能够计算带小数的数值和负数
那我们就知道了,python其实可以做计算,那按照我们前面的梳理,我们还需要有个地方来输入。我们先实现简单点,计算两个数值的加减乘除。
python用input("")来表示输入。比如说,我们可以这样用:
我们可以编写我们的程序了,我们新建一个txt文件,将下面程序代码输入,看看能否实现:
我们保存文件,并把文件的后缀名改成py,双击运行看看能否运行。运行成功会出现这样的界面,输入数值看看能否计算。
我们可以看到计算结果:
是错误的!为什么呢?这其实就还是之前我们说的字符串问题,我们input接收到数据是默认是字符串,两个字符串用加号的时候,就相当于拼接起来了。这还有版本差异,如果使用的是python2版本的,如果输入数值,就会显示数值,如果输入字符,则会显示字符串。python3版本的则是全部按字符串处理。这不算什么大问题,我们有办法解决。
我们加多上图中框选的这两句,保存,运行,看看有什么效果。
我们先解释一下这几句代码。前面两行的意思大家应该都清楚了,就是将一些字符打印出来。第3行的意思,等于号后面我们刚才解释过了,就是让用户输入数据的。等于号是什么意思,大多计算机语言,单个等于号的意思就是“赋值”。将后面的内容赋值给了前面的对象,我们看这个单词variable_1就是变量。就好像一个盒子,一开始就是个盒子,我们使用了魔法,说“你这个盒子,变成小汽车吧”,这个盒子就变成了小汽车。这就是变量,看名字就知道,会变的。variable_1这是个变量,我们输入了123这个数字,就相当于告诉了variable_1说“你变成123吧”,它就是123了;跟它是“你是猪”,它就变成猪了。
变量有很多种类型,我们先讲3种,后面我们再讲更多,前面提到的字符串,还有整数、浮点数。字符串好理解了,就是用双引号、单引号包起来的。用英文表示为string,如果我们用python输出来就是str。整数就是没有带小数点的数值嘛,浮点数就可以理解为带小数的数值。整数的英文是int,浮点数的英文是float。整数和浮点数的相关知识,我们同样在附录一中讲解。
为了体验变量的不同,我们再学习一个新的魔法,type(),这可以显示变量的类型。好像照妖镜,照一下就知道是什么东西。我们使用cmd窗口演示变量。
通过这个例子,我们可以看到变量的区分。那变量直接可以相互转化吗?当然可以,我们刚才使用的计算器程序,我们看第6、7句,就我们添加进去的两句,我们使用了int()函数将variable_1和variable_2转化成了int类型,所以我们才能正常计算。同样的,我们把类型转化成浮点数。我们把代码改成下图这样,保存运行看看有什么变化。
我们可以看到输出的结果也变成了浮点数。两个浮点数相加,结果也是浮点数,类型没变
这一节我们先讲到这里,这个计算器还做得不完整,我们后面边学其他内容边完善。
相关推荐
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
夜斗不是神 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16
lhxxhl 2020-11-16
坚持是一种品质 2020-11-16
染血白衣 2020-11-16
huavhuahua 2020-11-20
meylovezn 2020-11-20
逍遥友 2020-11-20
weiiron 2020-11-16