一. 基本运算符

运算按种类可以分为: 算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算.

今天我们只学习算数运算、比较运算、逻辑运算、赋值运算、成员运算

1.1 算数运算

以下假设变量: a = 10, b = 20

运算符 描述 实例
+ - 两个对象相加 a + b = 30
- - 得到负数或者是一个数减去另一个数 -b = -20, a - b = -10
* - 两个数相乘或者是返回一个被重复若干次的字符串 a * b = 200
/ - x 除以 y b / a = 2
% 取模 - 返回除法的余数 b % a = 0
** - 返回x的y次幂 a ** b = 100000000000000000000
// 整除 - 返回商的整数部分 9 // 2 = 4, 9.0 // 2.0 = 4.0

1.2 比较运算

以下假设变量: a = 10, b = 20

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 True. 类似 !=
> 大于 - (x > y), 返回x是否大于y (a > b) 返回 False
< 小于 - (x < y), 返回x是否小于y. (a < b) 返回 True
>= 大于或等于 - (x >= y) 返回x是否大于等于y (a >= b) 返回 False
<= 小于或等于 - (x <= y) 返回x是否小于等于y (a <= b) 返回 True

所有比较运算符返回1表示真, 返回0表示假.

1.3 赋值运算

以下假设变量: a = 10, b = 20

运算符 描述 实例
= 简单的赋值运算符 c = a + b, 将a + b的运算结果赋值给c
+= 加法赋值运算符 c += a, 等效于 c = c + a
-= 减法赋值运算符 c -= a, 等效于 c = c - a
*= 乘法赋值运算符 c *= a, 等效于 c = c * a
/= 除法赋值运算符 c /= a, 等效于 c = c / a
%= 取模赋值运算符 c %= a, 等效于 c = c % a
**= 幂赋值运算符 c **= a, 等效于 c = c ** a
//= 取整除赋值运算符 c //= a, 等效于 c = c // a

1.4 逻辑运算

以下假设变量: a = True, b = False

运算符 描述 实例
and 布尔 - 如果x为False, x and y返回False, 否则它返回y的计算值. (a and b) 返回 False
or 布尔 - 如果x为True, 它返回True, 否则它返回y的计算值 (a or b) 返回 True
not 布尔 - 如果x为True, 返回False; 如果x为False, 它返回True not(a and b) 返回 True

1.4.1 逻辑运算的优先级

在没有括号()的情况下not优先级高于and, and优先级高于or, 即优先级关系为() > not > and > or, 同一优先级从左往右计算.

例题:

判断下列逻辑语句的True, False

1. 3>4 or 4<3 and 1==1
2. 1 < 2 and 3 < 4 or 1>2
3. 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1
4. 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8
5. 1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
6. not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6

1.4.2 逻辑运算的快速运算

x or y, x为真, 值就是x; x为假, 值就是y

x and y, x为真, 值就是y; x为假, 值就是x

例题:

求出下列逻辑语句的值

8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6

1.5 成员运算

以下假设变量x = 2, y = [1, 2, 3, 4]

运算符 描述 实例
in 如果在指定的序列中找到值, 返回True, 否则返回False (x in y), 返回True
not in 如果在指定的序列中没有找到值, 返回True, 否则返回False (x not in y), 返回False

例题:

判断子元素是否在原字符串(字典, 列表, 集合)中

print('喜欢' in 'dkfljadklf喜欢hfjdkas')
print('a' in 'bcvd')
print('y' not in 'ofkjdslaf')

二. Python运算符的优先级

以下表格列出了从最高到最低优先级的所有运算符

运算符 描述
** 指数(最高优先级)
~, +, - 按位翻转, 一元加号[+2], 一元减号[-2] (注意与加法, 减法区分)
*, /, %, // 乘, 除, 取模, 整除
+, - 加法, 减法
>>, << 右移, 左移
& AND
^, | 位运算符
<=, <. >, >= 比较运算符
<>, ==, != 等于运算符
=, %=, /=, //=, -=, +=, *=, **= 赋值运算符
is, is not 身份运算符
in, not in 成员运算符
not, and, or 逻辑运算符

『Python基础』第7节:基本运算符的更多相关文章

  1. 『Python基础』第4节:基础数据类型初识

    本节只是对基础数据类型做个简单介绍, 详情会在之后慢慢介绍 什么是数据类型? 我们人类可以分清数字与字符串的区别, 可是计算机不能. 虽然计算机很强大, 但在某种程度上又很傻, 除非你明确告诉它数字与 ...

  2. 『Python基础』第2节: Python简介及入门

    一. Python介绍 Python是一门高级计算机程序设计语言,1989年,荷兰的Guido von Rossum创造了它.Guido是是一个牛人,1982年,他从阿姆斯特丹大学获得了数学和计算机硕 ...

  3. 『Python基础』第39节 函数的返回值

    1. 函数的返回值 ​ 一个函数就是封装一个功能, 这个功能一般都会有一个最终结果的. ​ 比如写一个登录的函数, 最终登录是否成功你总得告诉我一声吧? ​ 还有咱们之前也用过 len() 这个函数, ...

  4. 『Python基础』第20节:深浅copy

    一. 赋值运算 l1 = [1, 2, 'conan', [11, 22]] l2 = l1 l1[0] = 111 print(l1) # [111, 2, 'conan', [11, 22]] p ...

  5. 『Python基础』第8节:格式化输出

    现在有一个需求, 询问用户的姓名, 年龄, 工作, 爱好, 然后打印成以下格式 ************ info of Conan ************ name: Conan age: 23 ...

  6. 『Python基础』第6节:流程控制之while循环

    在生活中经常遇到循环的事情, 比如循环列表播放歌曲等. 在Python中, 也有循环, 就是其流程控制语句while. 1. 基本循环 while 条件: 循环体 # 如果条件为真, 那么就执行循环体 ...

  7. 『Python基础』第5节:条件控制

    if 语句的使用 单分支 if 条件: 满足条件后要执行的代码 例如: if 2 < 3: print(222) print(333) 每个条件后面都要使用冒号 :, 表示接下来是满足条件后要执 ...

  8. 『Python基础』第1节 Windows环境下安装Python3.x

    一. Python安装 1. 下载安装包 https://www.python.org/downloads/release/python-374/ # 3.7安装包 # 如需安装python2.7版本 ...

  9. 『Go基础』第5节 第一个Go程序

    本节我们来学习写一个最简单的Go程序: 打印 Hello Go. 第一个Go程序, 只要跟着做, 留下个印象就可以. 用Goland创建一个 hello_go.go 文件(后缀为 .go ). 文件内 ...

随机推荐

  1. Vue axios post 传参数,后台接收不到为 null

    由于axios默认发送数据时,数据格式是Request Payload,而并非我们常用的Form Data格式,后端未必能正常获取到,所以在发送之前,需要使用qs模块对其进行处理. cnmp inst ...

  2. 三大框架 之 Spring-Aop

    目录 AOP AOP简介 开发存在 的问题 JDK动态代理 cglib动态代理 Spring的AOP简介 AOP相关术语 Joinpoint:连接点 Pointcut:切入点 Advice:通知 In ...

  3. Java学习之"Hello World"

    好像学习每个程序敲的第一个代码都是"Hello World",而学习Java也不例外,这篇博客就讲一下我学习Java的第一个程序HelloWorld.java 程序代码: publ ...

  4. 深度学习面试题26:GoogLeNet(Inception V2)

    目录 第一层卷积换为分离卷积 一些层的卷积核的个数发生了变化 多个小卷积核代替大卷积核 一些最大值池化换为了平均值池化 完整代码 参考资料 第一层卷积换为分离卷积 net = slim.separab ...

  5. sql server for centos7

    sql server for centos7 笔者在CENTOS7上面安装SQL SERVER,感觉非常方便. 但有一点要注意,字段是字符串类型的,要使用nvarchar(),不能使用varchar( ...

  6. 001 centos7下安装kibana

    Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索.查看交互存储在Elasticsearch索引中的数据. 所以,在安装完ES之后,这里再安装一下kibana.方便后面学 ...

  7. python的url正则表达式

    网上有很多的正则表达式版本,大部分都不好使,下面这个比较好用: http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F] ...

  8. python声明类时继承不继承object类的区别

    不加的叫做经典类或旧式类,但是现在python3的类都默认是继承了object的,所以可写可不写 下面举个例子说明: 首先说明下__class__功能与用法: __class__功能和type()函数 ...

  9. 004-行为型-05-职责链模式(Chain of Responsibility)

    一.概述 为请求创建一个接收此次请求对象的链 该模式构造一系列分别担当不同的职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作职责链模式. 在这种模式中,通常每个接收者都 ...

  10. AndroidKiller简单使用:修改应用名称

    修改apk名称 软件清晰地展示了美柚的信息.(是反编译的不错选择) 切换到工程管理器,可以查看反编译的资源和smail代码等. 接下来,查看smali代码,找到你需要查看的文件,点击下图的这个图标 看 ...