你的电脑,也就是计算机。主要的工作就是不停地计算!
混沌初开
在计算机编程语言还未诞生的年代。
“初代程序员”使用的是“机器语言”。
直接使用二进制码 0 和 1 来表示计算机可以识别的指令和数据。
例如,在8086(一种CPU型号)计算机上完成 768 12288-1280 的数学运算,机器码如下
101100000000000000000011
000001010000000000110000
001011010000000000000101
无论是当时写这个机器码的人,还是其他人都很难读懂上面的代码。
如果不小心把1写错成0,或者把0写错成1,想要排查错误都非常困难。
使用机器语言编程主要的特点有三个:难写、难读、难改。
乾坤始奠
编程语言是为了让人类更加方便的操作计算机而做的抽象。比如各种数据类型、变量名、运算符等。
计算机先辈们把机器码指令抽象区分出了各种符号。发明了汇编语言(也被称为符号语言)
使用助记符来代表0101,比如,为了完成“将寄存器 BX 的内容送到 AX 中”的简单操作,汇编语言和机器语言分别如下
机器语言:1000100111011000
汇编语言:mov ax,bx
汇编语言的mov就是操作数据的指令,ax和bx分别是不同的寄存器,可以理解为变量所在的地址。
虽然汇编语言简化了直接写机器码的难度,但是汇编还是直接面向硬件的。
现代高级编程语言比如Python,在汇编和C语言的基础上做了更加高层次的抽象,使得开发者不需要过多关注底层硬件。
由于你写的代码不是直接运行在硬件之上的,而是由操作系统分配资源进行统一调度的,所以你也不用关心变量到底在内存的哪个位置上。
什么是运算符?
通过字面理解,运算符就是用来运算的符号。
编程语言中的运算符,是对计算机底层的一种抽象符号。
运算符有什么用?
通过不同的运算符,可以操作各种数据在计算机上进行各种运算。
相比机器语言直接使用二进制码 0 和 1 来表示计算机可以识别的指令和数据。
高级编程语言引入了变量和数据类型来识别数据,使用运算符来区分指令。
你看到的每一个窗体,每一个视频,鼠标点击的每一个按钮,都是通过运算符操作各种数据而产生的世界。底层通过指令计算数据得到在屏幕的对应位置的像素点上显示某个颜色,由显卡这个物理硬件对屏幕的抽象,使得计算机可以通过计算的方式操作屏幕所显示的内容,让你看到绚丽多彩的世界。
Python中有哪些运算符?
- 算数运算符
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
本篇文章主要讲前面四类运算符,其他的后面文章再讲。
注意,在Python中赋予了加法运算符和乘法运算符更多的能力,称为运算符重载。相同的运算符用在不同类型的数据下表现的行为不同。
例如
a = 2
b = 3
c = a * b
print(c)
c的结果为6
a = '2'
b = 3
c = a * b
print(c)
上面 c的结果为 222 ,它的意思是将 2 这个字符串连续输出3次。
上面的赋值运算符 = 就是进行赋值操作。
在 = 左边加上算数运算符是一种简写。
比如
a = 2
b = 3
a = a b
print(a)
a = a b,先计算= 右边的 a b,再将计算结果赋值给a
最终输出结果为5。
可以简写为
a = b
关系运算符最终的结果是一个布尔值,True 或 False。
True代表真,False代表假。
注意Python中的布尔值首字母是大写的。
a = 1
b = 1
c = a == b
print(c)
c的结果为True,因为。a == b 的关系是成立的,所以为True。
a = 1
b = 1
c = a != b
print(c)
c的结果为False,因为 a != b 的关系不成立,所以为False。
其他运算符的关系比较以此类推,就不一一举例了。
逻辑与运算符:
左右两边必须都为True,结果才是True,否则为False。
逻辑或运算符:
左右两边只要有一个为True,结果就为True。
逻辑非运算符:
对一个布尔值取反操作,比如not True的结果为False。
案例
a = True
b = False
c = a and b
print(c)
结果为 False。
a = True
b = False
c = a or b
print(c)
结果为 True。
a = True
c = not a
print(c)
结果为 False。
总结
运算符是计算机指令的抽象,使得编程人员不用关注计算机底层是如何实现乘法,如何实现幂运算,只需通过数学符号就能方便的操作数据。