运算符和表达式
python中的运算符主要分为以下几类,中间有与其他语言的比较,主要是针对java语言的
算术运算符
数之间的计算,注意乖法中数字可与字符串相乘,这是与很多其他语言不同的地方
再就是幂计算和取整数运算的符号,也有点区别
运算符 | 名称 | 说明 |
---|---|---|
+ | 加 | 两个对象相加 |
- | 减 | 得到负数或是一个数减去另一个数 |
* | 乘 | 两数相乘或是返回一个重复若干次的字符串 |
** | 幂 | 返回x的y次幂 |
/ | 除 | x除以y |
// | 取整数 | 返回商的整数部分 |
% | 取模 | 返回除法的余数 |
关系运算符
所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。此处的True和False的首字母大写,要与其他语言相区分,比如:java等
运算符 | 名称 | 说明 |
---|---|---|
< | 小于 | 返回x是否小于y |
> | 大于 | 返回x是否大于y |
<= | 小于等于 | 返回x是否小于等于y |
>= | 大于等于 | 返回x是否大于等于y |
== | 等于 | 比较对象是否相等 |
!= | 不等于 | 比较两个对象是否不相等 |
逻辑运算符
和其他语言没什么区别,注意返回值首字母大小写问题即可
运算符 | 名称 | 说明 |
---|---|---|
not | 布尔”非” | 若x为True,返回False;反之亦然 |
and | 布尔”与” | 若x为False,返回False,否则返回y的计算值 |
or | 布尔”或” | 若x为True,返回True,否则返回y的计算值 |
位运算符
位运算都是会对二进制数的,非二进制的情况下要先转换后运算,运算完后再转换回来
运算符 | 名称 | 说明 |
---|---|---|
<< | 左移 | 把一个数的比特向左移一定位数 |
>> | 右移 | 把一个数的比特向右移一定位数 |
& | 与 | 数的按位与 |
| | 或 | 数的按位或 |
^ | 异或 | 数的按位异或 |
~ | 按位翻转 | x的按位翻转是-(x+1) |
运算符与优先级
优先级问题,所有的语言中都会有相关的规定,这也是避免长串计算表达式能够正确运行的准则。事实上,使用圆括号可能会更好、更方便的让你理清计算的先后顺序。建议在计算中用圆括号来指出计算的先后顺序。
下表是按照优先级由低到高的顺序进行排列的运算符列表
运算符 | 描述 |
---|---|
lambda | Lambda表达式 |
or | 布尔“或” |
and | 布尔“与” |
not x | 布尔“非” |
in,not in | 成员测试 |
is,is not | 同一性测试 |
<,<=,>,>=,!=,== | 比较 |
| | 按位或 |
^ | 按位异或 |
& | 按位与 |
<<,>> | 移位 |
+,- | 加法与减法 |
*,/,% | 乘法、除法与取余 |
+x,-x | 正负号 |
~x | 按位翻转 |
** | 指数 |
x.attribute | 属性参考 |
x[index] | 下标 |
x[index:index] | 寻址段 |
f(arguments…) | 函数调用 |
(experession,…) | 绑定或元组显示 |
[expression,…] | 列表显示 |
{key:datum,…} | 字典显示 |
‘expression,…’ | 字符串转换 |
这一篇主要是学习了运算符及其优先级问题,以及相比java的一些异同点,下一篇开始进入语句中的控制流。