原标题:0007 编程入门python语言之四则运算器

这节课我们来做一个四则运算器,输入2个数字和1个运算符,让程序计算出结果。

上节课我们做了加法计算器和减法计算器,课后练习做了乘法计算器和除法计算器

再来复习一下,加法计算器:

num1=input("num1:")

num2=input("num2:")

num3=num1+num2

print num1,"+",num2,"=",num3

减法计算器:

num1=input("num1:")

num2=input("num2:")

num3=num1-num2

print num1,"-",num2,"=",num3

乘法计算器:

num1=input("num1:")

num2=input("num2:")

num3=num1*num2

print num1,"*",num2,"=",num3

除法计算器:

num1=input("num1:")

num2=input("num2:")

num3=num1/num2

print num1,"/",num2,"=",num3

大家发现没有,代码非常类似,有没有办法可以将4个程序合并起来,做成一个四则运算器呢

如果程序在输入第一个数字之后,要求用户输入一个运算符号,然后输入第二个数字之后,程序判断运算符号是哪一个从而计算出正确的结果,这样就可以实现了

问题来了,如何实现判断运算符号的程序呢

0和1的世界

计算机的世界是一个精确的世界,在计算机的世界里面,只有0和1

因为计算机是由电驱动的,是由逻辑电路组成的,而逻辑电路只有2个状态,开关的接通和断开,这两种状态正好用1和0来表示

通过逢二进一规则,也就是二进制,进行计算的时候,运算规则简单,有利于简化计算机内部结构,提高运算速度

那么什么是二进制,通常我们熟悉的阿拉伯数字都是十进制,也就是低位逢十向高位进一,而二进制只有0和1,所以变成逢2向高位进1,我们来看下面最简单的一个计算,求1011+11的和

十进制的1=二进制的1

十进制的2=二进制的10

十进制的3=二进制的11

十进制的4=二进制的100

十进制的5=二进制的101

十进制的6=二进制的110

十进制的7=二进制的111

十进制的8=二进制的1000

十进制的9=二进制的1001

十进制的10=二进制的1010

十进制的11=二进制的1011

十进制的12=二进制的1100

十进制的13=二进制的1101

十进制的14=二进制的1110

根据二进制计算规则,1011(11)+11(3)=1110(14)

大家再做一个二进制计算题,101+11,看看等于多少,然后转换为十进制看看

布尔类型Ture和False

真实世界中有一对概念,真和假

体现在计算机世界,就是布尔数据类型,True和False

主要的作用就是用来做逻辑判断,判断条件是否成立

例如:如果某某为真,则这样处理,否则,那样处理

例如:如果今天下雨,则去图书馆看书,否则去操场踢足球

这里的“今天下雨”就是一个逻辑判断,结果可能为True,也可能为False

如果为True,则去图书馆看书,如果为False,则去操场踢足球

例如:如果考试分数>=60,则及格,否则不及格

这里的“考试分数>=60”就是一个逻辑判断,结果可能为True,也可能为False

如果为True,则及格,如果为False,则不及格

逻辑运算符and和or和not

针对逻辑判断,有3种逻辑运算,从而可以组合形成更复杂的判断

例如:如果今天下雨并且带伞,则去图书馆看书,否则如果今天下雨并且没打伞,则在家看书,否则去操场踢足球

not 逻辑非 不是

and 逻辑与 并且

or 逻辑或 或者

not 相反的判断,针对1个逻辑值计算

计算公式:not True = False , not False = True

and 两者都为True则结果为True否则为False,针对2个逻辑值计算

计算公式:True and True = True, True and False = False, False and True = False, False and False = False

or 两者任一为True则结果为True,两者都是False才为False,针对2个逻辑值计算

计算公式:True or True = True, True or False = True, False or True = True, False or False = False

计算一下:not True and not False = ?

如果一个逻辑运算里面包含了多个逻辑运算符,则存在优先级,就是谁先计算,谁后计算

优先级按如下排:not and or 同级运算从左至右

因此上面的计算结果应该是:not True先运算,结果为False,然后因为优先级not优先于and,先计算后面的not False,结果为True,最后计算False and True,最后结果为False

再计算一个:False or not True and not False = ?

if判断语句

在python程序里面,判断语句的格式是这样的:

if 逻辑运算结果1=True :

执行A

elif 逻辑运算结果2=True :

执行B

else :

执行C

执行的逻辑是:如果逻辑运算结果1为True,则执行A,否则的话,再判断逻辑运算结果2为True,则执行B,前面2个不满足则执行C

其中的执行A,执行B,执行C ,都是指一段代码,可以是0行或1行或多行代码,不是仅仅限定1行代码的意思

其中elif可以允许出现0个或1个或多个,else可以允许出现0个或1个

冒号表示下面的代码行是一个新的段落,每个新的段落,通过在行首输入相同的空格来进行区分,简称缩进

python最重要的规则:缩进的空格数整个程序必须一致。

如果你用了2个空格作为缩进规则,则程序中所有的行的缩进规则都是2个空格

一般我们都习惯用4个空格

例如执行A假如是3行代码,执行B假如是4行代码,执行C假如是1行代码

那么加起来的8行代码每一行的前面都应该是4个空格,表示这些代码都是相同的缩进格式

如果执行A的3行代码每一行用了4个空格,而执行B的4行代码每一行用了8个空格,程序执行的时候就会报错

后面我们在具体做实验的时候可以体会

if判断语句举例:

例子1,单个分支:

if score>=60 :

print "及格"

例子2,2个分支:

if score>=60 :

print "及格"

else :

print "不及格"

例子3,3个分支

if score>=80 :

print "良好"

elif score>=60 :

print "及格"

else :

print "不及格"

例子4,4个分支

if score>=90 :

print "优秀"

elif score>=80 :

print "良好"

elif score>=60 :

print "及格"

else :

print "不及格"

例子5,5个分支

if score==100 :

print "满分"

elif score>=90 :

print "优秀"

elif score>=80 :

print "良好"

elif score>=60 :

print "及格"

else :

print "不及格"

if判断输入的操作符号

回到最初的目标上来:四则运算器

首先,打开原来的add.py程序,另存为cala.py程序

然后在第1行结尾处打回车,增加1个空行,然后增加下面一行代码:

operate=input("your operate:")

然后在num3=num1+num2这一行前面增加一行

if operate=="+" :

然后把num3=num1+num2这一行前面增加4个空格

然后,把print 这一行里面的"+"修改为operate,保存代码

这样,加法已经可以运行了,我们先测试一下加法是否正确

注意,输入运算符的时候,一定要前后输入双引号,表示这是一个字符串

这样,程序里面判断语句 operate=="+" 才能正确进行判断,这里的==表示是逻辑判断,而num1=的这个=表示赋值操作符

接下,增加elif分支,判断减法乘法和除法,在print这行前面增加下列代码

elif operate=="-" :

num3=num1-num2

elif operate=="*" :

num3=num1*num2

elif operate=="/" :

num3=num1/num2

else :

num3="error operate"

程序测试的重要性

代码写好之后,需要通过反复的测试来确保程序是正确的按照预期的逻辑进行处理,这就是测试

测试在软件工程中是非常重要的一环

测试的目的:

1.确保程序本身正确执行,不会崩溃或死循环,或者无法执行

2.确保程序是按照设计和预期进行执行,得到的结果是正确和符合预期的

3.确保程序在不同环境或者不同条件情况下,仍然能够正常工作,当然这些条件都是在设计之中。

下面,我们就来测试刚刚做好的四则运算器,注意让程序的每一种情况每一个分支都运行测试过

课后作业1:

输入一个分数,根据分数进行判断,大于等于90分屏幕输出best,大于等于80分屏幕输出good,大于等于60分屏幕输出pass,其他屏幕输出fail

课后作业2:

输入月份和日期,根据月份日期判断是属于哪个星座的

往期教程

0001 零基础的小白能学会编程吗?

0002 真的吗,700元的电脑可以学会编程?

0003 十分钟组装一台电脑开始编程

0004 如何编写人生的第一行代码helloworld

0005 键盘打字如何练成像黑客一样的飞速

0006 编程入门python语言之加法计算器

因为教程是系列教程,前后关联性非常强,请大家按照微信公众号的发布时间先后次序进行阅读。

微信公众号里面直接输入序号可以查看该序号课程,例如输入0001可以查看【0001 零基础的小白能学会编程吗?】

作者简介

学哥,二十年编程经验,历任程序员,资深程序员,技术经理,项目经理,产品经理,系统架构师,IT总监。爱好篆刻,阅读,美食。

微信号简介

每天半小时零基础学编程。大人可以学,小孩也可以学。练打字,用软件,写文档,做网站,做App,编游戏,数据库,玩硬件,写程序,3D打印,无人机,机器人。

html,css,java,python,php,java,swift,mysql,android,ios,raspberry pi,scratch. 微信公众号搜索:零基础学编程。返回搜狐,查看更多

责任编辑:

python四则运算器编写_0007 编程入门python语言之四则运算器相关推荐

  1. 编程入门python语言是多大孩子学的-什么是少儿Python编程?这一篇就够啦!

    原标题:什么是少儿Python编程?这一篇就够啦! 少儿Python编程大家都了解多少呢? 由于少儿编程学习的重要性被广大家长朋友们所知,再加上近几年来我国对少儿编程教育的重视,现在很多的家长朋友们都 ...

  2. python游戏编程入门 免费-python游戏编程入门 python游戏编程入门课

    python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...

  3. python游戏编程入门免费_python游戏编程入门 python游戏编程入门课

    python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...

  4. python是什么软件-零基础入门Python怎么学习?老男孩python用什么软件

    在培训学习Python时,怎么才能学好Python?随着Python技术的发展,越来越多的人开始学习Python编程语言,那么零基础入门Python该怎么学习? 1.要养成良好的代码编写习惯,注重细节 ...

  5. 初学python的体会心得-分享给入门Python小白的学习心得

    原标题:分享给入门Python小白的学习心得 Python诞生于1989年,第一个公开版本于1991年问世.作为一门历史悠久的语言,Python具有代码简短.可读性强等先天优势.Python是一个很全 ...

  6. 编程入门python语言是多大孩子学的-入门编程语言,让你想学Python的几个优点!...

    关注我让代码变得有趣 对于新手小白想入门编程语言来说python是一款非常合适的语言.python是一个高层次的脚本语言,它具有很强的可读性.同时它还是解释型,交互式.面相对象的语言.非常适合初学者入 ...

  7. 编程入门python语言是多大孩子学的-如何看待将Python作为少儿编程的基础语言?...

    少儿编程入门我只推荐Scratch!不好意思,Python先靠后! 今天的回答主要针对Scratch编程语言,看完我的回答你就知道为什么我会强推Scratch! 本回答较长,建议大家先点赞&收 ...

  8. python 编程入门-python编程入门(第3版)

    python编程入门(第3版)简洁明了,通俗易懂,非常适合初学者,但是我觉得处理大型任务,多线程应该是必不可少的,这对于初学者来说也是需要了解的,当然了,多线程是个复杂的话题,高级用户可以再深入研究, ...

  9. python教程很详细_Python编程入门教程:从入门到高级,非常详细

    本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...

最新文章

  1. hibernate 中set的3个属性(inverse,cascade,order_by)
  2. centos7 shell脚本自动优化yum firewalld xelinux
  3. 面向B端市场,Mana VR团队将推出VR交互产品
  4. TCP/IP协议中常用端口表
  5. 执行计划--为查询指定查询计划
  6. Android开发之旅:应用程序基础及组件
  7. 深入分析python的and or 返回值
  8. python nltk —— 文本预处理
  9. 学python前端需要哪些基础知识_简析前端学习python3的基础
  10. Windos配置本地config文件,ssh访问指定服务器
  11. 10张图看懂人口普查数据
  12. mysql 分组查询 语句_MySQL分组查询
  13. 日本語トレーニング(二十一)
  14. 网易云音乐的亏损,是社区经济的通病?
  15. vue中 给v-for渲染的元素动态添加移除类名
  16. HTML+CSS 基础 之页签
  17. HDU 1859 最小长方形
  18. 解决nodemon : 无法加载文件 C:\Users\admin\AppData\Roaming\npm\nodemon.ps1
  19. 基于JAVA的农产品销售管理系统【数据库设计、源码、开题报告】
  20. 递推DP(至少和至多之间的转换

热门文章

  1. JQuery-回到顶部
  2. 1278:【例9.22】复制书稿(book)
  3. 做软件测试工程师真的很容易吗?
  4. 网络技术这十个术语你知道吗?
  5. 51单片机stc15w204s串口通信发数据接收数据串口中断发中文字符串完美运行软件延时发送一字节函数全注释
  6. Web Service 自动生成代码报错
  7. async-excel整合站内信通知用户体验感满满
  8. SeekBarVolumizer.java
  9. 【MFC】动态加载Picture Control控件中的图片
  10. 115-545-003丨Alexa Fluor 488标记亲和纯化山羊抗小鼠IgG(H+L)二抗