这节课我们来做一个四则运算器,输入2个数字和1个运算符,让程序打算出结果。
上节课我们做了加法打算器和减法打算器,课后练习做了乘法打算器和除法打算器
再来复习一下,加法打算器:
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=num1num2
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=num1num2
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,javascript,python,php,java,swift,mysql,android,ios,raspberry pi,scratch. 微信"大众年夜众号搜索:零根本学编程。