# 运算符
我们将简单浏览一下运算符和它们的用法:
## 技巧
你可以交互地使用解释器来计算例子中给出的表达式。例如,为了测试表达式`2 + 3`,使用交互式的带提示符的Python解释器:
```
>>> 2 + 3
5
>>> 3 * 5
15
>>>
```
| 运算符 | 名称 | 说明 | 例子 |
| :-: | :-: | :-: | :-: |
| + | 加 | 两个对象相加 | 3 + 5得到8。'a' + 'b'得到'ab'。 |
| - | 减 | 得到负数或是一个数减去另一个数 | -5.2得到一个负数。50 - 24得到26。 |
| * | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 | 2 * 3得到6。'la' * 3得到'lalala'。 |
| ** | 幂 | 返回x的y次幂 | 3 ** 4得到81(即3 * 3 * 3 * 3) |
| / | 除 | x除以y | 4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333 |
| // | 取整除 | 返回商的整数部分 | 4 // 3.0得到1.0 |
| % | 取模 | 返回除法的余数 | 8%3得到2。-25.5%2.25得到1.5 |
| << | 左移 | 把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1) | 2 << 2得到8。——2按比特表示为10 |
| >> | 右移 | 把一个数的比特向右移一定数目 | 11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。 |
| & | 按位与 | 数的按位与 | 5 & 3得到1。 |
| | | 按位或 | 数的按位或 | 5 | 3得到7。 |
| ^ | 按位异或 | 数的按位异或 | 5 ^ 3得到6 |
| ~ | 按位翻转 | x的按位翻转是-(x+1) | ~5得到6。 |
| < | 小于 | 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | 5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3 < 5 < 7返回True。 |
| > | 大于 | 返回x是否大于y | 5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。 |
| <= | 小于等于 | 返回x是否小于等于y | x = 3; y = 6; x <= y返回True。 |
| >= | 大于等于 | 返回x是否大于等于y | x = 4; y = 3; x >= y返回True。 |
| == | 等于 | 比较对象是否相等 | x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。 |
| != | 不等于 | 比较两个对象是否不相等 | x = 2; y = 3; x != y返回True。 |
| not | 布尔“非” | 如果x为True,返回False。如果x为False,它返回True。 | x = True; not y返回False。 |
| and | 布尔“与” | 如果x为False,x and y返回False,否则它返回y的计算值。 | x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。 |
| or | 布尔“或” | 如果x是True,它返回True,否则它返回y的计算值。 | x = True; y = False; x or y返回True。短路计算在这里也适用。 |
- 版权信息
- 前言
- 本书的由来
- 本书目前的状况
- 约定条款
- 反馈
- 值得思考的一些东西
- 第1章 介绍
- Python的特色
- 为什么不使用Perl?
- 程序员的话
- 第2章 安装Python
- Windows®用户
- 概括
- 第3章 最初的步骤
- 使用带提示符的解释器
- 挑选一个编辑器
- 使用源文件
- 可执行的Python程序
- 获取帮助
- 概括
- 第4章 基本概念
- 数
- 字符串
- 变量
- 标识符的命名
- 数据类型
- 对象
- 逻辑行与物理行
- 缩进
- 概括
- 第5章 运算符与表达式
- 运算符
- 运算符优先级
- 表达式
- 概括
- 第6章 控制流
- if语句
- while语句
- for循环
- break语句
- continue语句
- 概括
- 第7章 函数
- 函数形参
- 局部变量
- 默认参数值
- 关键参数
- return语句
- DocStrings
- 概括
- 第8章 模块
- 字节编译的.pyc文件
- from..import语句
- 模块的name
- 制造你自己的模块
- dir()函数
- 概括
- 第9章 数据结构
- 列表
- 元组
- 字典
- 序列
- 参考
- 更多字符串的内容
- 概括
- 第10章 解决问题——编写一个Python脚本
- 解决方案
- 软件开发过程
- 概括
- 第11章 面向对象的编程
- self
- 类
- 对象的方法
- __init__方法
- 类与对象的方法
- 继承
- 概括
- 第12章 输入/输出
- 储存器
- 概括
- 第13章 异常
- try..except
- 引发异常
- try..finally
- 概括
- 第14章 Python标准库
- sys模块
- os模块
- 概括
- 第15章 更多Python的内容
- 单语句块
- 列表综合
- 在函数中接收元组和列表
- lambda形式
- exec和eval语句
- assert语句
- repr函数
- 概括
- 第16章 接下来学习什么?
- 探索更多内容
- 概括
- 附录A 自由/开放源码软件(FLOSS)
- 附录B 关于本书
- 关于作者
- 关于译者
- 关于简体中文译本
- 附录C 修订记录
- 术语表