学哥量化交易学习
持续学习,提高认知,磨炼技艺,从零基础学编程并跨过量化程序交易的大门。
 返回首页
 
 
0007 编程入门python语言之四则运算器
作者:学哥
发布时间:2017-1-9


这节课我们来做一个四则运算器,输入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: 输入月份和日期,根据月份日期判断是属于哪个星座的
学哥量化交易学习团队
   致力于:持续学习,提高认知,磨炼技艺,持续输出高质量的教程和课程,帮助更多的人从零基础学编程并跨过量化程序交易的大门。
零基础学编程Python入门课程
课程包含以下内容:
1.图文教程《零基础学编程入门-从Python到Web网站.pdf》,学哥原创版权,共计1024页高清图文教程。
2.视频课程《零基础学编程Python入门》,学哥原创版权,共计24节课45个高清视频。
3.视频教程《玩转魔方》,学哥原创版权,可以送给孩子,共计16个高清视频。
4.图文教程《如何寻找编程相关的电子书下载资源.pdf》。
5.加入学哥编程学习辅导QQ群在线交流。

客服 10:00-17:00
QQ: 44556287
微信公众号
学哥量化交易学习
 
  微信公众号:学哥量化交易学习     QQ群1:603559164    客服QQ号:44556287
工信部备案/许可证编号:沪ICP备15050545号-4