python_运算符与表达式
运算符与表达式
python运算符
运算符 功能说明 + 算术加法,列表、元组、字符串合并与连接,正号 - 算术减法,集合差集,相反数 * 算术乘法,序列重复 / 真除法 // 求整商,但如果操作数中有实数的话,结果为实数形式的整数 % 求余数,字符串格式化 ** 幂指数 <,<=,>,>=,==,!= (值)大小比较,集合的包含关系比较 or 逻辑或 and 逻辑与 not 逻辑非 in 成员测试 is 对象同一性测试,即测试是否为同一对象或内存地址是否相同 |,^,&,<<,>>,~ 位或,位异或,位与,左移位,有移位,位求反 &,|,^ 集合交集、并集、对称差集 @ 矩阵相乘运算符
算术运算符
+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接
>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
>>> (1,2,3) + (4,)
(1, 2, 3, 4)
>>> 'abc' + '1234'
'abc1234'
>>> 'A' + 1 # 不支持字符与数字相加,抛出异常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not int
>>> True + 3
4
>>> False + 3
3*运算符除了表示算术乘法,还可用与列表、元组、字符串这几个序列类型与整数的乘法,表示序列元素的重复,生成新的序列对象。字典和集合不支持与整数的相乘,因为其中的元素是不允许重复的。
>>> True*3
3
>>> False * 4
0
>>> [1,2,3] * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> (1,2,3) * 2
(1, 2, 3, 1, 2, 3)
>>> 'abc'*3
'abcabcabc'运算符/和//在python中分别表示算术除法和算术求整商
>>> 3/2
1.5
>>> 15 // 4
3
>>> 15.0 // 4
3.0
>>> -15 // 4 # 向下取整
-4%运算符可以用与整数或实数的求余数运算,还可以用于字符串格式化,但是并不推荐这种用法
>>> 789 % 23
7
>>> 123.45 % 3.2
1.849999999999996
>>> '%c,%d'%(65,65)
'A,65'
>>> '%f,%s'%(65,65)
'65.000000,65'**运算符表示幂乘,等价与内置函数pow()
>>> 3 ** 2
9
>>> pow(3,2,8) # 等价于(3**2)%8
1
>>> 9 ** 0.5
3.0
>>> (-9)**0.5 # 可以计算负数的平方根
(1.8369701987210297e-16+3j)
关系运算符
python关系运算符最大的特点是可以连用,其含义于我们日常的理解完全一致。使用关系运算符的一个最中要的前提是,操作数之间必须可以比较大小。
>>> 1<3<5 # 等价于1<3 and 3<5
True
>>> 1<5>2
True
>>> 1>6<8
False
>>> 1>6<math.sqrt(9) # 具有惰性求值或者逻辑短路的特点
False
>>> 1<6<math.sqrt(9)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'math' is not defined
>>> import math
>>> 1<6<math.sqrt(9)
False
>>> 'Hello'>'world' # 比较字符串的大小
False
>>> {1,2,3}<{1,2,3,4} # 测试是否是子集
True
>>> [1,2,3]<[1,2,4] # 比较列表的大小
True
>>> [1,2,3]<[1,2,3]
False
>>> [1,2,3]<[1,1,4]
False
>>> 'Hello'>3 # 字符串和数字不能比较
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'str' and 'int'
>>> {1,2,3}=={3,2,1} # 测试两个集合是否相等
True
>>> {1,2,4}>{1,2,3}
False
>>> {1,2,4}>{1,2} # 测试是否子集True>>> {1,2,4}>{1,2,4}False
成员测试运算符in与同一性测试运算符is
成员测试运算符in
>>> 3 in [1,2,3]
True
>>> 5 in range(1,10,1) # range()是用来生成指定范围数字的内置函数
True
>>> 'abc' in 'abcfhdgd'
True
>>> for i in (3, 5, 7):
... print(i,end='\t')
...
3 5 7 >>>
同一性测试运算符is
测试两个对象是否是同一个,如果两个对象是同一个,两者具有相同的地址
>>> 3 is 3
True
>>> x = [300, 300, 300] # 基于值的内存管理,同一个值在内存中只有一份
>>> x[0] is x[1]
True
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> x is y
False
>>> x[0] is y[0]
True
>>> x.append(4)
>>> x
[1, 2, 3, 4]
>>> x = y
>>> x
[1, 2, 3]
>>> x is y
True
>>> x.append(4)
>>> x
[1, 2, 3, 4]
>>> y
[1, 2, 3, 4]
>>>
位运算与集合运算
位运算符只能用于整数
位运算规则
# 位与运算&
1 & 1 = 1
1 & 0 = 0 & 1 = 0 & 0 = 0
# 位或运算
1 | 1 = 1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
# 位异或运算
1 ^ 1 = 0 ^ 0 = 0
0 ^ 1 = 1 ^ 0 = 1
# 左位移时右侧补0,每左位移一位相当于乘以2;右位移时左侧补0,每右位移一位相当于除以2示例
>>> 3 << 2
12
>>> 23 >> 2
5
>>> 3 & 7
3
>>> 3 | 8
11
>>> 3 ^ 5
6集合的并集、交集、对称差集、差集
>>> {1, 2, 3} | {3, 4, 5} # 并集
{1, 2, 3, 4, 5}
>>> {1, 2, 3} & {3, 4, 5} # 交集
{3}
>>> {1, 2, 3} ^ {3, 4, 5} # 对称差集
{1, 2, 4, 5}
>>> {1, 2, 3} - {3, 4, 5} # 差集
{1, 2}
逻辑运算符
逻辑运算符and、or、not常用来连接条件表达式构成更加复杂的条件表达式,并且and和or具有惰性求值或逻辑短路的特点;注意:运算符and和or并不一定会返回True或False,而是得到最后一个被计算的表达式的值,但是运算符not一定会返回True或False。
>>> 3 > 5 and a > 5
False
>>> 3 > 5 or a > 5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
>>> 3 < 5 or a > 5
True
>>> 3 and 6
6
>>> 3 and 5 > 2
True
>>> 3 not in [1, 2, 3]
False
>>> 3 is not 5
True
>>> not 3
False
>>> not 0
True
>>>
矩阵运算符@
>>> import numpy # numpy是用于科学计算的Python扩展库
>>> x = numpy.ones(3) # ones()函数用于生成全1矩阵,参数表示矩阵大小
>>> m = numpy.eye(3) * 3 # eye()函数用于生成单位矩阵
>>> m[0,2] = 5
>>> m[2,0] = 3
>>> x
array([1., 1., 1.])
>>> m
array([[3., 0., 5.],
[0., 3., 0.],
[3., 0., 3.]])
>>> x@m
array([6., 3., 8.])
python_运算符与表达式的更多相关文章
- Sql Server系列:运算符和表达式
运算符的一些符号,他们能够用于执行算术运算.字符串连接.赋值以及在字段.常量和变量之间进行比较.在SQL Server 2012中,运算符主要由以下6大类:算术运算符.赋值运算符.比较运算符.逻辑运算 ...
- C Primer Plus_第5章_运算符、表达式和语句_编程练习
Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...
- javascript运算符与表达式
表达式 表达式是关键字.运算符.变量以及文字的组合,用来生成字符串.数字或对象.一个表达式可以完成计算.处理字符.调用函数.或者验证数据等操作. 表达式的值是表达式运算的结果,常量表达式的值就是常量本 ...
- 【C语言学习】《C Primer Plus》第5章 运算符、表达式和语句
学习总结 1.有了一定的语言基础,运算符和表达式这些都大同小异,无外乎赋值运算符(=).算术运算符(+.-.*./.%.++.——)和其他的一下运算符(sizeof.(type)). 2.声明一个参数 ...
- [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式
[.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式 说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如 ...
- [Java 基础]运算符和表达式
Java运算符 (1)赋值操作符 赋值操作符(=)表示:取右边的值(即右值),把它复制给左边(即左值). 右值可以是任意的常量.变量或表达式(只要可以生成一个值). 左值必须是一个明确的.已命名的变量 ...
- 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等
[源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native ...
- Python运算符与表达式
Python运算符包括赋值运算符.算术运算符.关系运算符.逻辑运算符.位运算符.成员运算符和身份运算符. 表达式是将不同类型的数据(常亮.变量.函数)用运算符按照一定得规则连接起来的式子. 算术运算符 ...
- 01-Java基础知识:数据类型与变量、标识符、运算符、表达式
Java基础知识:数据类型与变量.标识符.运算符.表达式 一.数据类型 Java定义了基本数据类型.引用数据类型.自定义类型. 八种基本数据类型:byte (1). short (2). int ( ...
随机推荐
- docker 运行nginx并进入容器内部、端口映射
一.docker运行容器 1.从网易蜂巢镜像仓库下载nginx镜像 : 2.拉取镜像到本地,并查看本地的镜像: $ docker pull hub.c..com/library/node:latest ...
- java中的内存模型
概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立性而使用的多线程技术支持也是具有开拓性的一面,有时候在开发Jav ...
- Spring MVC 数据绑定和表单标签库
数据绑定是将用户输入绑定到领域模型的一种特性.作用是将 POJO 对象的属性值与表单组件的内容绑定. 数据绑定的好处: 1. 类型总是为 String 的 HTTP 请求参数,可用于填充不同类型的对象 ...
- 如何将service绑入到spring 并且在action中使用
第一步:定制 service接口,为什么用接口我也不清楚 package com.inspur.services; import com.hsp.domain.User; public interfa ...
- [C#]WinForm动态删除控件 Controls.Remove()
今天遇到一个奇怪的问题,在WinForm内动态添加Button后再动态的移除,发生稀奇古怪的现象,Button控件只被规律的移除,没有完全移除 foreach (Control c in this.C ...
- Google Reader 快关了!!
现在还每天用Google Reader, 每次打开都提示7月1号要关闭... 上图怀念: 控制区功能:排序.展开\收缩显示.上一条\下一条,还有下拉框下的很多功能... 列表显示 针对每个Item下的 ...
- python文件打包
python文件打包 先安装 pip3 install --upgrade pyinstaller 进入到文件的当前目录 ,在命令行中输入: pyinstaller -F -w[文件名].py 其中- ...
- 基础知识之nginx重写规则
nginx重写规则 nginx rewrite 正则表达式匹配 大小写匹配 ~ 为区分大小写匹配 ~* 为不区分大小写匹配 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配 -f ...
- TortoiseGit使用笔记
不喜欢敲命令行,或者用惯TortoiseSVN的也可以使用TortoiseGit 1. TortoiseGit安装 安装很简单,默认安装就可以.需要安装以下几个软件: l Git-2.14.3-64- ...
- 关于上级机构的冲突性测试bug修复
描述: 1.上级机构可以为空. 2.机构添加时,选择了上级机构,在未提交前,另一用户将该机构删除,然后前一用户再提交表单,提示会保存成功,本操作应该保存失败. 思路:在上级机构不为空时,保存前进行查询 ...