【python知识】运算符博览

2023-05-16

目录

目录

一、说明

二、基本数值运算符

2.1 基本运算符的列举

2.2 基本运算符的示例

2.3 复数基本运算符的示例

三、整数进制转化

3.1 进制转换运算符

3.2 实验代码和说明 

四、整数按位运算

4.1 全部位运算符号

4.2 整数按位运算的实验

五、布尔运算符

六、比较运算符

六、分隔符有 

七、函数及使用    

八、操作符优先级

九、特殊用法

十、其它



一、说明

        python到底有多少运算符,它们针对的哪些数据类型,操作数有多少。为了没有遗漏地掌握了解,本篇将详细讨论有关运算符的知识。

二、基本数值运算符

2.1 基本运算符的列举

        数字运算符号,针对数字类型对象,包括int,float类型,基本的操作符号有9个。通过下表列出:

运算操作符单双目数字类型描述
+x+yint   float complex实现加运算
-x-yint   float complex实现减运算
*x*yint   float complex实现乘运算
/x/yint   float complex实现除运算
//x//yint   整除
++xint   float  complexx本身
--yint   float complexx取负
%x % yint   float 求模
**x ** yint float complex指数

2.2 基本运算符的示例

实验1:加减法实现整形、浮点型

a1 = 100
a2 = 200
print(a1+a2)
>>300              整形+ 整形 = (输出) 整形
​a1 = 100
a2 = 200.
print(a1-a2)
>>-100.0           整形 - 浮点形 = (输出) 浮点形

实验2:乘除法实现整形、浮点型

a1 = 100
a2 = 20000000000000000000000000000000000000000
print(a1*a2)
>> 2000000000000000000000000000000000000000000

整形 * 整形 = (输出) 整形,此例整数虽然大,但也不转成浮点类。
a1 = 100
a2 = 210
print(a1/a2 )
>>0.47619047619047616
a1 = 100
a2 = 210
print(a1/0 )
 报错:程序中断

实验3: 单目运算

a1 = 100
print(+a1 )
print(-a1)

>> 100
  -100     (任意)形 = (输出) 任意形

实验4: 取余数

a1 = 100
a2 = 210
print(a2%a1 )

>>10
a1 = 100.
a2 = 210.
print(a2%a1 )
>>10.0          #浮点数也可以的

实验5:指数操作

a1 = 100.
a2 = 210.
print(a2**a1 )
>> 1.6669764843963373e+232

2.3 复数基本运算符的示例

        复数运算请大家自己验证吧。

三、整数进制转化

3.1 进制转换运算符

        因为计算机是二进位法则,因此,凡是位运算基本需要先转换成二进制体系,也有8进制和16进制中间类型(是字符串类型)。这也算是操作符号吧:

操作函数意义输入数据类型描述
int将x转化成10进制整数(bin、oct、hex )int(str,bse) 
int10进制转化成10进制floatint(float)
bin将x转化成二进制int如0b1111字符串
oct将x转化成8进制int如0o1357字符串
hex将x转化成16进制int如oxff3d字符串

        密切注意:10进制数转化成其它进制数,结果是个字符串类型,并非实际的数,也不能参与任何数字运算,千万别搞错!!!

3.2 实验代码和说明 

实验1:输入十进制,转化成二进制、八进制、16进制

a=int(input('请输入要转换的十进制数:'))
# 十进制转二进制 (bin)
b1=bin(a)
b2=oct(a)
b3 = hex(a)
print('十进制转换为二进制是:',b1)
print('十进制转换为八进制是:',b2)
print('十进制转换为十六进制是:',b3)
>>
请输入要转换的十进制数:211
十进制转换为二进制是: 0b11010011
十进制转换为八进制是: 0o323
十进制转换为十六进制是: 0xd3

注意:输入只能整数,否则报错!!!。

实验2:输入10进制,转化成它进制,再从它进制转10进制

a=int(input('请输入要转换的十进制数:'))
# 十进制转二进制 (bin)
b1=bin(a)
b2=oct(a)
b3 = hex(a)
print('十进制转换为二进制是:',b1)
print('十进制转换为八进制是:',b2)
print('十进制转换为十六进制是:',b3)

c1 = int(b1,2)
c2 = int(b2,8)
c3 = int(b3,16)
print('它进制转化成十进制:',c1,c2,c3)

>>>
请输入要转换的十进制数:254
十进制转换为二进制是: 0b11111110
十进制转换为八进制是: 0o376
十进制转换为十六进制是: 0xfe
它进制转化成十进制: 254 254 254

 注意:int(str,base) 其中str是字符串,base是进制数(2,8,16 )

实验3:输入10进制浮点数,转化成10进制整数

a = float(input('请输入要转换的十进制数:') )
b1 = int(a)
print('它进制转化成十进制:',a)
print('它进制转化成十进制:',b1)
print(type(a))
>>>
请输入要转换的十进制数:113.55
输入转化成十进制: 113.55
十进制转化成十进制: 113

实验4:int函数输入字符串 

a = int("1124")
b = int("1124.6")
print(a,b)
>>> Traceback (most recent call last):
  File "C:/Users/yan/PycharmProjects/speechDev/myroad/tan.py", line 18, in <module>
    b = int("1124.6")
ValueError: invalid literal for int() with base 10: '1124.6'

注意:int(x)如果x是字符串,它的x只能是整数,改成浮点数出错!!!

四、整数按位运算

4.1 全部位运算符号

        凡是位运算基本需要先转换成二进制体系。

符号描述规则输入类型
&    与  与运算 两个位都为1时,结果才为1
|    或    或运算两个位都为0时,结果才为0
^    异或    异或两个位相同为0,相异为1
~    取反  取反 0变1,1变0
<<左移各二进位全部左移若干位,高位丢弃,低位补0
>>右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

4.2 整数按位运算的实验

实验1:数的class始终是10进位,不存在二进制(8,16进制)数据对象。

c =  1|2
print(c )

d = 0b11
e = 0b1
print(d|e)
print(type(d))
>>>
3
3
<class 'int'>

实验2:因为不存在二进制(8,16进制)数据对象,所以有显示格式,将10进制显示成二进。

d = 0b1101
print( bin(d))
print( type(bin(d)))
>>>
0b1101
<class 'str'>
  • 至于运算,请读者自己整理

<<>>&|^~

五、布尔运算符

  andornot,详细用,逻辑运算符,专门针对表达式操作:

运算符意义输入类型
and布尔与表达式
or布尔或表达式
not布尔非表达式

例1:ss不是空指针,并且类型为字符串

( ss is not None)and (type(ss)==str)

注意这里的“is not”是一个固定结构,并不是布尔“非”,切记。
 

六、比较运算符

        比较是构成将表达式转化成布尔逻辑的基础。

  • 比较运算符如下
比较运算符意义数据类型
<小于int float
>大于 int float
<=小于含等于 int float
>=大于含等于int float
==等于int float
!=不等于int float
in在列表(容器)内任意
not in不在列表(容器)内任意
is对象指针
is not不是对象指针

七、分隔符有 

()[]{},:.;=+=-=*=/=//=%=&=|=^=>>=<<=**=

        部分分隔符用法举例:

        圆括号绑定表达式,或元组显示,方括号用来对序列进行索引、切片取值或列表显示,花括号字典显示或集合显示

范例1:

3 * (1 + 2) * (1,)
(1, 1, 1, 1, 1, 1, 1, 1, 1)
[1,2,3,4][1:3]
[2, 3]
{'列表':[], '集合':{1,2,3}}
{'列表': [], '集合': {1, 2, 3}}

范例2:

  # 通常用来注释代码,但不能包含在字符串中,注释在语法分析中会被忽略:

# 这是注释
'''
# hello world
# hello python
'''
'\n# hello world\n# hello python\n'

        操作符除了常规的用法,操作不同的数据类型,相应的数据类型可能定义了特定的操作规则;在特定的应用场景,也有着特殊的用法。

八、函数及使用    

        有些函数实际上是为了补充运算符的。

  • abs(x)    绝对值,x的绝对值 abs(-10.01) 结果为 10.01
  • divmod(x,y)    商余,(x//y, x%y),同时输出商和余数divmod(10, 3) 结果为 (3, 1)
  • pow(x, y[, z])    幂余,(x**y)%z,[…]表示参数z可省略pow(3, pow(3, 99), 10000) 结果为 4587
  • round(x[, d])    四舍五入,d是保留小数位数,默认值为0 round(-10.123, 2) 结果为 -10.12
  • max(x1,x2, … ,xn)    最大值,返回x1,x2, … ,xn中的最大值,n不限 max(1, 9, 5, 4, 3) 结果为 9
  • min(x1,x2, … ,xn)    最小值,返回x1,x2, … ,xn中的最小值,n不限 min(1, 9, 5, 4, 3) 结果为 1
  • int(x)    将x变成整数,舍弃小数部分 int(123.45) 结果为123; int(“123”) 结果为123
  • float(x)    将x变成浮点数,增加小数部分 float(12) 结果为12.0; float(“1.23”) 结果为1.23
  • complex(x)    将x变成复数,增加虚数部分 complex(4) 结果为 4 + 0j

九、操作符优先级

        Python 表达式语句中操作符的优先顺序从最低优先级(最后绑定)到最高优先级(最先绑定)如下:

  • := 赋值表达式
  • lambda lambda 表达式
  • if -- else 条件表达式
  • or 布尔逻辑或 OR
  • and 布尔逻辑与 AND
  • not x 布尔逻辑非 NOT
  • innot inisis not<<=>>=!=== 比较运算
  • | 按位或 OR
  • ^ 按位异或 XOR
  • & 按位与 AND
  • <<>> 移位
  • +- 加和减
  • *///% 乘,矩阵乘,除,整除,取余
  • +x-x~x 正,负,按位非 NOT
  • ** 乘方(右边的先绑定)
  • await x await 表达式
  • x[index]x[index:index]x(arguments...)x.attribute 抽取,切片,调用,属性引用
  • (expressions...)[expressions...]{key: value...}{expressions...} 绑定或加圆括号的表达式,列表显示,字典显示,集合显示

        一个表达式语句中可以有多个上述操作符,最终返回一个值(包括返回值为 None 的函数调用)。

        而赋值语句中的赋值操作符 =+=-=*=/=//=%=&=|=^=>>=<<=**=,在操作符中优先级最低,它右边表达式的值计算完之后,才最后绑定到左边的名称。

十、特殊用法

        容器类的内置类型,通常对操作符定义了自己特有的的操作行为。

  • * 操作符,除了数字运算的 乘,还可以用来将可迭代对象拆包。拆包之后置于元组,列表,集合中,或作为参数传递给函数:
{*{'a':1, 'b':2}}
{'a', 'b'}
print(*'abc', sep='-')
a-b-c
  • ++=**= 可用来对序列类型进行拼接,重复拼接或拼接并赋值(range 类型除外)。由于列表是可变对象,+= 和 *= 在操作列表时,是用来更新列表。具体详见 列表操作符。
'd-' + 'abc'*2
'd-abcabc'
a = [1]*2
a += [2]
a
[1, 1, 2]
  • 操作符 **| 和 |= 可以用来操作字典。具体详见 字典操作符。
  • 操作符 ><>=<= 可对集合进行子集或超集比较;|&-^ 可求集合的并集,交集,差集,对称差集;|=&=-=^= 可用来更新集合。具体详见集合知识点。
  • 操作符 % 可以用来格式化字符串,而在格式化迷你语言中,定义了非常多的有特殊意义操作符。具体详见 str.format 格式化 和 字符串操作符。

十一、其它

        还有许多符号,在收集中:

操作符号意义
->

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【python知识】运算符博览 的相关文章

  • 用于将 cython 中的许多 C++ 类包装到单个共享对象的项目结构

    我在文档 邮件列表和这个问题在这里 https stackoverflow com questions 10300660 cython and distutils 但我想得到一个更直接的答案来解决我的具体情况 我正在通过尝试一点一点地包装我
  • 无法“安装”plpython3u - postgresql

    我正在尝试在 postgresql 中使用 python 语言 像这样的事情 create or replace function test a integer returns integer as if a 2 0 return even
  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 将 saxon 与 python 结合使用

    我需要使用 python 处理 XSLT 目前我正在使用仅支持 XSLT 1 的 lxml 现在我需要处理 XSLT 2 有没有办法将 saxon XSLT 处理器与 python 一起使用 有两种可能的方法 设置一个 HTTP 服务 接受
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • Flask如何获取请求的HTTP_ORIGIN

    我想用我自己设置的 Access Control Allow Origin 标头做出响应 而弄清楚请求中的 HTTP ORIGIN 参数在哪里似乎很混乱 我在用着烧瓶 0 10 1 以及HTTP ORIGIN似乎是这个的特点之一object
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P

随机推荐

  • 【PID控制原理及其算法】

    前言 本文以自己的学习过程总结而来 xff0c 将自己的经验写出来以供大家一起学习 xff0c 如有错误请多指教 一 PID是什么 xff1f PID就是比例 积分 微分 xff0c PID算法可以说是在自动控制原理中比较经典的一套算法 x
  • printf重定向的相关总结

    简介 实现printf重定向有多种方式 xff0c 下面一一介绍 linux环境下 虽然linux系统的默认标准输出设备是显示器 xff0c 但是我们可以把printf打印输出的内容重定向到其他设备或文件 方法如下 xff1a 方法1 xf
  • 开发者七问七答:什么是产品化?

    简介 xff1a 之前参加了企业智能部门如何做产品化的讨论 xff0c 大家对产品化的定义和过程都有各自不同的见解 我觉得这个话题其实可以扩展下 xff0c 想站在一个开发人员的视角尝试探讨一下产品化 下面以自问自答的方式来展开 1 当我们
  • 系统调用和库函数及API的区别

    在写程序的过程中 xff0c 像MFC xff0c VC 43 43 这些编程 xff0c 都会涉及到函数的调用 xff0c 有库函数也有系统函数 xff0c 下面看一看它们的区别 xff01 xff01 系统调用 xff08 system
  • 应用服务器与zk之间的连接超时

    关于connectString服务器地址配置 格式 192 168 1 1 2181 192 168 1 2 2181 192 168 1 3 2181 这个地址配置有多个ip port之间逗号分隔 底层操作 span class hljs
  • 日本小学生走向APP开发私塾 智能手机迫切改变IT教育——日本经济新闻报道

    如要在日本接受专门的信息技术教育 xff08 IT xff09 xff0c 只有结束义务教育课程才能接受 如今 xff0c 打破这些障碍的趋势逐渐浓厚 因为从小就接触到各种数字机器和互联网而长大的 数字土著 xff08 digital na
  • 步进电机和伺服电机的区别

    步进电机作为一种开环控制的系统 xff0c 和现代数字控制技术有着本质的联系 在目前国内的数字控制系统中 xff0c 步进电机的应用十分广泛 随着全数字式交流伺服系统的出现 xff0c 交流伺服电机也越来越多地应用于数字控制系统中 为了适应
  • 【图像处理】墨西哥小波和带通滤波

    一 说明 在连续小波的家族当中 xff0c 埃尔米特小波是个非常特别的存在 xff08 应用在连续小波转换称作埃尔米特转换 xff09 Ricker子波计算电动力学的广谱源项 它通常只在美国才会被称作墨西哥帽小波 xff0c 因为在作为核函
  • 【halcon知识】应用仿射变换

    一 说明 无论什么样的变换 xff0c 都离不开齐次变换矩阵 一般地 xff0c 先准备一个空的齐次变换矩阵 xff0c 这个矩阵随便填写 xff1a 1 xff09 填入旋转类参数就是旋转矩阵 xff0c 2 填入仿射参数就可进行仿射变换
  • 【ROS2知识】SQLite数据库

    目录 一 说明 二 介绍SQLite 三 安装 3 1 简单测试 生成一个表 3 2 sqlite 共五种数据类型
  • open3D

    目录 一 说明 二 如何安装open3d xff1f 三 显示点云数据 3 1 显示点云场景数据 3 2 体素下采样 3 3 顶点法线估计 一 说明 对于点云 处理 xff0c 这里介绍哦pen3d xff0c 该软件和opencv同样是i
  • 【计算几何7】帝国边界划分问题【Voronoi图的原理】

    目录 一 说明 二 帝国边界划分问题 三 voronoi的正规定义 3 1 最简单的voronoi情况 3 2 在距离空间的数学描述 3 3 不同距离空间所得 Voronoi 单元不同 四 代码和库 4 1 算法库 4 2 参数说明 4 3
  • 【python视图2】基于networkx的10个绘图技巧

    目录 一 说明 二 简单图操作种种 2 1 简单的无向图 2 2 简单的有向图 2 3 二维网格grid图 和边数据读写 2 4 环图 2 5 全连接神经网络 2 6 分布直方图 度秩图 连同子图 2 7 随机生成 2 8 渐变颜色化 2
  • ESP32控制TDC-GP22测量超声传播时间(超声流量计)

    TDC GP22控制的资料 xff0c 网上的资源都是基于STM32或者MSP430主控的 xff0c 但现在这两款芯片都太贵了 xff0c 因此就想用便宜点的ESP32 xff0c 折腾了快一周 xff0c 终于弄好了 工程源码和参考资料
  • 【python视图3】networkx图操作示例

    目录 一 说明 二 神奇制图 2 1 绘制彩虹图 2 2 随机地理图 2 3 旅行商问题 2 4 权重的灵活绘制 2 5 barabasi albert模型1 2 6 barabasi albert模型2 2 7 igraph操作 一 说明
  • 【python视图1】networkx操作Graph图

    目录 一 说明 二 生成图 xff08 Creating a graph xff09 2 1 创建一个没有节点和边的空图 2 2 在空图追加节点 2 3 追加边 xff08 Edges xff09 2 4 删除节点 2 5 查询 三 使用图
  • 【python】错误TypeError: ‘dict_values‘ object does not support indexing when的改出

    一 说明 在使用python的dict和索引时 xff0c 在早期的python可以 xff0c 但后来不可以了 因此 xff0c 在python执行语句 xff1a names i d values i for i in range le
  • 【Python知识】 可哈希和不可哈希对象

    目录 一 说明 二 可哈希 在Python中是什么意思 xff1f 2 1 什么是哈希 hashable xff1f 2 2 python的可哈希对象 2 3 实验和说明 2 4 什么是不可哈希 unhashable xff1f 三 更深的
  • 【python知识】推导式和生成器

    目录 一 说明 二 列表生成式 2 1 语法 2 2 列表推导式实例 三 字典的推导式 3 1 语法字典推导式 3 2 示例 四 集合推导式 4 1 集合推导的语法 4 2 实例 五 元组推导式 5 1 元组推导式基本格式 5 2 元组推导
  • 【python知识】运算符博览

    目录 目录 一 说明 二 基本数值运算符 2 1 基本运算符的列举 2 2 基本运算符的示例 2 3 复数基本运算符的示例 三 整数进制转化 3 1 进制转换运算符 3 2 实验代码和说明 四 整数按位运算 4 1 全部位运算符号 4 2