The world is changing!机器正在学习,让我们一起学习python,一起走向机器学习。
今天我们学习布尔值、比较运算符和逻辑运算符。
计算机系统,简单的说,就是把输入数据进行运算处理然后再输出结果的一个系统。即输入-处理-输出的这样一个系统,这个系统如何实现的呢?
上面是个电路图,三角形代表二极管,箭头方向代表电流通过的方向。A和B代表输入端,F代表输出端。如果输入端A不给加电压,则电流就会从A端流出,如果A和B同时加电压,电子就会堵在二极管的另一头,那么F端即输出端就有了电压。
如果把有电压看做1,没有电压看做0,那么在上面这个电路,存在以下几种情况:
①输入端A和B都不加电压,那么输出端F也就没有电压。这个过程,就是输入端AB为00,输出端F则为0。
②输入端A和B,一个有电压,另一个没电压,则输入端为10,或者是01,那么输出端F也不会有电压,即输出端F为0.
③输入端A和B同时有电压,即输入端为11,那么输出端F则有电压,即输出端F为1。
通过上面这个电路,可以实现以上三种情况,分别对应:
输入00,输出结果0;
输入01,输出结果0;
输入10,输出结果0;
输入11,输出结果1。
上面这个电路,则分别对应:
输入00,输出结果0;
输入01,输出结果1;
输入10,输出结果1;
输入11,输出结果1。
以上两个电路,是最基本的电路叫“与门电路”和“或门电路”。计算机就是由很多很多的这种基本电路,设计连接成极其复杂的电路系统,从而实现把输入的一串0和1组成的数字,经过电路之后产生变化,就会输出另一串的0和1。
计算机的芯片,就是一大堆的这种二极管、半导体等元器件组成的超级复杂的电路,然后把设计好的这种电路,通过极其精密和复杂的工艺制造过程“安装”到硅片上,就成了芯片。
各种芯片就是我们常说的CPU,GPU,即运算处理器。
而这个0和1组成的二进制数字,相当于是一个信号,二进制数字又可以对应转换成人类容易理解的10进制数字,人们编制了一个ASCII码表,中文的“你好”这个词,对应在这个ASCII表中对应的10进制值就是2032022909,而2032022909这个10进制数对应可以转换成0和1组成的一串二进制数字100111101100000101100101111101。即任何文字、字母、符号、数字等形式的信号都可以转换成二进制的一串0和1组成的数字,计算机只认识0和1,然后去处理这一串0和1组成的信号指令。
以上就是计算机实现的基本原理,那么这个0和1,就是对应编程中的布尔值,true和false。
在所有编程语言中,布尔值都是true和false,true是1,false是0。
接下来我们学习比较运算符和逻辑运算符,为什么把布尔值和比较运算符、逻辑运算符放一起学习,因为它们几个结合比较紧密,一般会同时出现。
①比较运算符包括:==,<,>,<=,>=,!=。
②逻辑运算符:and,or
咱们先只学习最常用的以上这几个。
注意:
通过比较运算符运算出来的结果是布尔值,
逻辑运算符两边往往是比较运算符表达式,
所以通过逻辑运算符运算出来的结果也是布尔值。
逻辑运算符预算规则:
and左右两边同时都为true,则整个逻辑表达式结果为true,两边只要有一个为false,则结果为false。
or左右两边两边只要有一个为true,则结果为true,两边同时为false,则结果才为false。
比如,1<2,运算结果为false。
3>1,运算结果为true。
1<5 and 6>3, and这个逻辑运算符左右两边就是比较运算符组成的表达式。1<5结果为true,6>3结果为true,and两边同时为true,故整个表达式结果为true。
1<5 and 6<3,因为左边1<5为true,6<3为false,and两边不同时为true,故结果为false。
1<5 or 6>3,or这个逻辑运算符,左边1<5运算结果为true,右边运算结果为true,两边都为true,则结果为true。
1<5 or 3>6,左边为true,右边为false,因两边其中一个为true,故结果为true。
1>5 or 3>6,两边都是false,故整个逻辑表达式运算结果为false。
作为知识扩展,简单介绍了一下计算机原理,如有错误,欢迎指正。