简明Python3教程 7.运算符和表达式

简介: 简介 你写的大多数逻辑行都包含表达式。表达式的一个简单例子是2 + 3。一个表达式可分为操作符和操作数两部分。 操作符的功能是执行一项任务;操作符可由一个符号或关键字代表,如+ 。操作符需要数据以供执行其功能,这些数据名为操作数。

简介

你写的大多数逻辑行都包含表达式。表达式的一个简单例子是2 + 3。一个表达式可分为操作符和操作数两部分。

操作符的功能是执行一项任务;操作符可由一个符号或关键字代表,如+ 。操作符需要数据以供执行其功能,这些数据名为操作数。在上面的例子中,2和3是操作数。

操作符

我们在这里简单地介绍操作符及其用途:

你可在Python解释器中交互验证下面给出的例子。例如,验证2 + 3,在Python解释器提示符中输入:

>>> 2 + 3
5
>>> 3 * 5
15
>>>

操作符

名称

用途

举例

+

使两操作数相加

3 + 5 得到 8. 'a' + 'b' 得到 'ab'.

-

求出前后两数之差。若第一个操作数未写则默认为0。

-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.3333333333333333。

//

取整除

返回最大的整数商。

4 // 3 得到 1。

%

取模

返回余数。

8% 3 得到2。 -25.5% 2.25得到1.5.

<<

左位移

将操作数向左移动若干bit位。(数字在内存中以二进制表示)

2 << 2 得到 8。 2在二进制中表示为10 。左位移两bit位后得到1000,十进制中表示为8。

>>

右位移

将操作数向右移动若干bit位。

11 >> 1得到5, 11二进制下表示为1011,右位移一位后得到101,十进制中表示为5。

&

按位与

数的按位与。

5 & 3 得到 1。

|

按位或

数的按位或。

5 | 3得到7。

^

按位异或

数的按位异或。

5 ^ 3得到6。

~

按位翻转

x的按位翻转是-(x+1)。

~5得到-6。

<

小于

返回x是否小于y。所有比较运算符返回布尔值True或False。请注意布尔值大小心敏感。

5 < 3得到False,3 < 5得到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 >= 3得到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 = True; not x返回False。

and

布尔与

无论y值为何,若X为False则x and y 返回False。

x = False; y = True; x and y由于x为False返回False。此例中Python因为已知and左值为False而不会计算整个布尔表达式,这是短路求值法

or

布尔或

若x为True则返回True,否则返回y的布尔值。

x = True; y = False; x or y返回True。布尔或同样使用短路求值。

数学运算与赋值捷径

对一个变量进行运算后再赋值给其自身是常见的,因此对于此类表达式有对应捷径:

你可将:

a = 2; a = a * 3

写成:

a = 2; a *= 3

注意:变量 = 变量 操作符 表达式变为了变量 操作符= 表达式

运算顺序

如果你遇到了类似2 + 3 * 4的表达式,首先做加法还是乘法?先做乘法,高中数学如是说。这意味着乘法运算符比加法运算符有更高的优先级。

下表中以从低到高的顺序给出了Python中操作符优先级列表。给定一个表达式,Python将会首先计算在此表中靠下的操作符与表达式,然后计算靠上的操作符与表达式。

此表取自Python reference manual,包括了所有的运算符。建议使用圆括号标注具有较高优先级的部分,这可使程序更可读。详情请看改变计算顺序

操作符

描述

lambda

Lambda表达式

or

布尔或

and

布尔与

not x

布尔非

in, not in

成员测试

is, is not

同一性测试

<, <=, >, >=,!=, ==

比较运算符

|

按位或

^

按位异或

&

按位与

<<, >>

位移

+, -

加减

*, /, //, %

乘除、取整除、取余

+x, -x

正负

~x

按位非

**

x.attribute

属性引用

x[index]

下标

x[index1:index2]

寻址段

f(arguments …)

函数调用

(expressions, …)

显示绑定或元组

[expressions, ...]

显示列表

{key:datum, …}

显示字典

表中仍未接触到的运算符将会在后续章节中说明。

拥有相同优先级的运算符位于上表的同一行中,例如+和-拥有相同优先级。

改变计算顺序

使用括号可增加表达式可读性。例如2 + (3 * 4)就比需要运算符优先级知识的2 + 3 * 4更好理解。但是仍要避免过量使用括号,例如(2 + (3 * 4))。

使用括号还可以改变运算顺序,例如在(2 + 3) * 4中括号使表达式先进行加法运算后进行乘法运算。

结合律

操作符在优先级相同的情况下从左向右计算,例如2 + 3 + 4等价于(2 + 3) + 4。另一些运算符如赋值运算符从右向左计算,例如a = b = c等价于a = (b = c)。

表达式

例子:

#!/usr/bin/python
# Filename: expression.py

length = 5
breadth = 2

area = length * breadth
print('Area is', area)
print('Perimeter is', 2 * (length + breadth))

输出:

   $ python expression.py
   Area is 10
   Perimeter is 14

工作原理:

矩形的长与宽存储在同名变量中。我们通过计算面积与周长的表达式得出这两个值。我们将表达式length * breadth的值存储在变量area中,并使用print函数打印变量值。在第二种情况中,我们直接使用print函数打印表达式2 * (length + breadth)的值。

另外即便我们没有专门在'Area is'与变量area中加入空格,Python仍美观地打印出了此输出。Python自动为我们生成了一个漂亮的输出格式并因此令程序更可读:我们不需要担心输出字符串中的空格。这是另一个Python简化程序员工作的例子。

总结

我们了解了书写任何程序都需要的砖块:操作符、操作数和表达式。下一步我们将了解如何在程序中使用这三者。

 

 

 

--------------Python书籍推荐-----------------
Python基础教程-第2版.修订版 
 
 
PYTHON核心编程
 
 
零基础学Python
相关文章
|
13天前
|
Python
python一元运算符的应用
【4月更文挑战第12天】Python的一元运算符包括正号(+), 负号(-), 按位取反(~), 取绝对值(abs())和类型转换(int(), float(), str())。例如:`+a`使数值变正,`-a`变为负数,`~a`为按位取反,`abs(a)`获取绝对值,而`int(a)`, `float(a)`, `str(a)`则用于类型转换。示例代码展示了这些运算符的使用效果。
17 0
|
1月前
|
JSON C语言 C++
【Python 基础教程 26】Python3标准库全面入门教程:一步步带你深入理解与应用
【Python 基础教程 26】Python3标准库全面入门教程:一步步带你深入理解与应用
63 1
|
21小时前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结
|
2天前
|
JSON 数据格式 索引
python 又一个点运算符操作的字典库:Munch
python 又一个点运算符操作的字典库:Munch
13 0
|
8天前
|
开发者 索引 Python
Python中的海象运算符:简洁而强大的赋值表达式
【4月更文挑战第17天】Python 3.8 引入了海象运算符 `:=`,也称赋值表达式运算符,用于在表达式内部赋值,简化代码并提升可读性。它能用于条件判断、循环控制和函数参数等场景,优化逻辑流程。然而,使用时需注意可读性、运算符优先级及赋值限制,以确保代码清晰易懂。海象运算符是Python编程的一个有用工具,但应根据情况谨慎使用。
|
13天前
|
数据采集 机器学习/深度学习 人工智能
「Python系列」Python运算符
Python 支持多种运算符,包括算术运算符、比较运算符、逻辑运算符、位运算符等等。
19 3
|
1月前
|
程序员 数据处理 开发者
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
【Python小技巧】通过实例说明推导式,条件表达式和Lambda函数
23 2
|
1月前
|
安全 程序员 数据处理
Python运算符详解
Python编程中的运算符包括算术、比较、逻辑、赋值和位运算符。算术运算符如加法(+), 减法(-), 乘法(*), 除法(/), 整除(//)和取模(%)用于数学运算。比较运算符如==, !=, &gt;, &lt;, &gt;=和&lt;=用于比较两个值。逻辑运算符and, or和not用于组合布尔表达式。赋值运算符如=, +=等用于赋值和复合赋值。位运算符如&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、&lt;&lt;(左移)和&gt;&gt;(右移)对整数的二进制位进行操作,常用于底层数据处理和性能优化。
|
1月前
|
存储 算法 数据挖掘
【Python 基础教程 25】全面入门指南:深度解析Python3的命名空间,作用域及变量使用教程
【Python 基础教程 25】全面入门指南:深度解析Python3的命名空间,作用域及变量使用教程
55 0
|
1月前
|
存储 机器学习/深度学习 数据安全/隐私保护
【Python 基础教程 24】全面入门Python面向对象编程:深度探索与实战教程
【Python 基础教程 24】全面入门Python面向对象编程:深度探索与实战教程
79 0

热门文章

最新文章