Python运算符

今天开始讲解Python的运算符,这一节比较简单,知识点不多。

上文回顾

今天回顾一下昨天的文章主要讲了哪些知识点:

  1. Python是一门动态的强类型语言;
  2. 变量没有类型,而变量指向的对象才有类型;
  3. 赋值意味着创建了新的对象(不过Python解释器会缓存小的数字及小的字符串);
  4. 变量、对象、引用之间的关系。

Python运算符

运算符是有优先级的,我们先看看其优先级:运算符的优先级,

1 + 2 * 3
7
2 * 3 ** 2
18

# 算术运算符优先级高于比较运算符
2 * 3 > 1 + 2
True

# 比较运算符的优先级高于逻辑运算符
2 * 3 > 1 + 2 and True
True

(2 * 3 > 1 + 2) and True
True

当我们对运算符的优先级不是很确定的时候,可以使用小括号。

算术运算符

算术运算符通常只针对数值类型。注意与Python2的区别。

自然除,

>>> 3 / 5
0.6

整除,

>>> 3 // 5
0

逻辑运算符

参与逻辑运算的成员只能是bool类型,或者可以隐式转化为bool类型的类型。

and需要运算符两边都是True结果才为True。

>>> True and True
True

or只要运算符两边任意一个为True,结果就为True,

>>> True or False
True

短路,

>>> not True
False

看一个例子,

def add(x, y):
    print('{0} + {1}'.format(x, y))
    return x + y

add(1, 3)
1 + 3
4

add(1, 3) > add(1, 2) and (2, 4) < add(3, 4)
1 + 3
1 + 2
2 + 4
3 + 4
True
    
# 逻辑运算总是从左到右计算,一旦能够决定表达式最终的值,将立刻停止计算,
# 并返回
add(1, 3) < add(1, 2) and (2, 4) < add(3, 4)
1 + 3
1 + 2
False

add(1, 3) > add(1, 2) or add(2, 4) < add(3, 4)
1 + 3
1 + 2
True

比较运算符

  1. 相等 ==
  2. 不等于!=
  3. 大于 >
  4. 大于等于 >=
  5. 小于 <
  6. 小于等于 <=

几个例子,

1 == 1
True

1 == 2
False

1 != 2
True

1 > 2
False

2 > 1
True

2 >= 1
True

2 >= 2
True

除了==!=,两边的类型相同。

位运算符

# 按位与
bin(60)
'0b111100'
# 0011 1100
bin(12)
'0b1100'
# 0000 1100
60 & 12
12

# 按位或
60 | 12
60
# 按位异或
# 相同为0,不同为1
60 ^ 12
48

# 取反
~60
-61

# 右移
60 >> 2
15

# 左移
60 << 2
240

成员运算符

用于判断一个元素是否在容器中。

  1. in
  2. not in

一个简单的例子:

>>> L1 = [1, 2, 3]
>>> 1 in L1
True
>>> s = 'spam'
>>> 'a' in s
True
>>> 'x' in s
False
>>> 'x' not in s
True

其他运算符

  1. 赋值
a = 1
a = 3 + 4
# 左边是一个标识符,右边是一个值(或者可以计算为一个值)
# 让这个标识符指向这个值所的内存

本文总结

今天的内容比较简单,概括一下主要讲解了:

  • 算术运算符
  • 逻辑运算符
  • 比较运算符
  • 位运算符
  • 成员运算符
  • 其他运算符

明天会继续讲解,讲解的内容为流程控制

原文发布于微信公众号 - 小白的技术客栈(XBDJSKZ)

原文发表时间:2017-08-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏sunseekers

啊,函数呐!!!

一份需要你补充完整的函数导图!我还是一个初学者,这篇文章是我所知道的所有关于函数的知识,如有不完善或者错误,希望能够在评论下方指出,哈哈哈,大神勿喷。

652
来自专栏文武兼修ing——机器学习与IC设计

JavaScript入门笔记(6)标准对象面向对象编程

标准对象 正则对象 正则表达式是一种处理文本信息的神器,在JavaScript中可以方便的使用正则对象对文本进行处理。JavaScript中声明正则对象可以使用...

3148
来自专栏Celebi的专栏

C/C++ 学习笔记四(指针、数组)

工作中经常使用到C/C++,为对C有个比较深刻的了解,重新拾起学习C的任务。在看书的同时,记录下思考的过程,也记录下重要的知识点。

1250
来自专栏从零开始学 Web 前端

从零开始学 Web 之 JS 高级(三)apply与call,bind,闭包和沙箱

不同的是传入参数时,apply 有两个参数,第二个参数是数组;call 从第二个参数开始是调用其的函数的所有参数。

723
来自专栏零基础使用Django2.0.1打造在线教育网站

关于JAVA你必须知道的那些事(三):继承和访问修饰符

今天乘着还有一些时间,把上次拖欠的面向对象编程三大特性中遗留的继承和多态给简单说明一下。这一部分还是非常重要的,需要仔细思考。

803
来自专栏小白的技术客栈

Python函数参数之全面讲解

Python函数参数 Python函数参数 本文主要介绍Python的函数参数,各种形式的参数。建议动手试试,可以加深理解。 函数参数 定义函数的时候,我们把参...

4055
来自专栏码云1024

JAVA 面向对象

4316
来自专栏从流域到海域

Python的闭包(Closure)与惰性计算(Lazy Evaluation)

闭包 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成...

22810
来自专栏运维技术迷

连仕彤博客[Python笔记] locals() 函数

1403
来自专栏C/C++基础

C++学习知识点

答:多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。 C++中,实现多态有...

652

扫码关注云+社区