【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知识】运算符博览 的相关文章

  • 相当于 java PBKDF2WithHmacSHA1 的 Python

    我的任务是构建一个 API 的使用者 该 API 需要带有 UNIX 时间种子值的加密令牌 我看到的示例是使用我不熟悉的 Java 实现的 在阅读文档和其他堆栈文章后一直无法找到解决方案 使用javax crypto SecretKey j
  • 使用 Python 或 Django 处理收到的电子邮件?

    我了解如何通过 Django 发送电子邮件 但我希望用户能够回复电子邮件 如果他们发送 以及我收到 的电子邮件包含与某个字符串匹配的消息 我将调用一个函数 我已经做了一些谷歌搜索 但除了自己制作脚本之外似乎没有什么好的解决方案 如果有什么东
  • Python BS4 Scraper 仅返回每个页面的前 9 个结果

    我让这段代码按预期工作 只是它并没有完全按预期工作 一切似乎都很顺利 直到我检查了我的 csv 输出文件并注意到我每页只得到前 9 个结果 每页应该有 40 个结果 因此我得到的结果少于预期的 25 有什么想法吗 import reques
  • “初始化 MCI 时出现问题”播放声音问题

    我正在尝试使用 Playsound 播放代码文件夹中的文件 但是每次运行代码时 它似乎都能够调用该文件 但我总是收到以下输出 playsound PlaysoundException Error 277 for command open p
  • 有没有办法清理 jinja2 生成的 html?

    我们使用 jinja2 来创建 html 但是 由于我们在 jinja 中执行许多循环和其他操作来生成 html 所以 html 看起来 很丑 注意 这只是为了美观 我们可以做些什么来清理 html 吗 除了清理我们的 jinja2 代码之
  • AttributeError:模块“pandas”没有属性“read_csv”Python3.5

    我已经成功使用pandas read csv很久以来 当我尝试读取 csv 文件时 突然开始出现错误 df pd read csv file csv encoding utf 8 错误是 AttributeError module pand
  • Python:按条件绘制多个正/负条形图

    这是我第一次用 python 绘制条形图 我的 df 操作 key descript score 0 noodles taste 5 1 noodles color 2 2 noodles health 3 3 apple color 7
  • Scrapy 未通过请求回调从项目中的已抓取链接返回附加信息

    基本上 下面的代码会抓取表格的前 5 项 其中一个字段是另一个 href 单击该 href 会提供更多信息 我想收集这些信息并将其添加到原始项目中 所以parse应该将半填充的项目传递给parse next page然后刮掉下一位并返回完成
  • 如何使用 tweepy 仅提取主题标签中的文本?

    我想为我的情感分析项目提取主题标签 但是我得到了一个字典列表 其中包含所有主题标签及其在推文中的索引 我只想要文字 我的代码 data tweepy Cursor api search q since a i until b i items
  • Scrapy 仅抓取每个页面的第一个结果

    我目前正在尝试运行以下代码 但它只保留每个页面的第一个结果 知道可能是什么问题吗 from scrapy contrib spiders import CrawlSpider Rule from scrapy contrib linkext
  • 通过Python通过蓝牙发送消息或数据

    如何通过 python 通过蓝牙发送消息 而无需输入数字等密钥身份验证 我用过 pybluez 但我收到了这个错误 File send line 12 in
  • Tornado:DummyFuture 不支持结果阻塞

    我试图获得一个非常简单的初始服务器 它可以 异步 获取 url 来工作 但它会抛出 Exception DummyFuture does not support blocking for results 有这个SO https stacko
  • 如何配置应用程序中的所有记录器

    Python 的日志记录模块允许模块或类定义自己的记录器 不同的记录器可以有不同的处理程序 其中一些可能选择记录到文件 而另一些则选择记录到标准输出 现在 我的应用程序使用其中几个模块 每个模块都有自己的记录器 这些记录器具有各种处理程序
  • 加载 IPython 笔记本时出错

    一旦我用 Jupyter 打开笔记本文件 它要求我转换文件 我就再也无法在标准 IPython 笔记本中打开它了 我收到以下错误 Error loading notebook Bad Request 2014 12 21 04 13 03
  • Unpivot Pandas 数据

    我目前有一个DataFrame布置为 Jan Feb Mar Apr 2001 1 12 12 19 2002 9 2003 我想将数据 逆透视 使其看起来像 Date Value Jan 2001 1 Feb 2001 1 Mar 200
  • 使用 asyncio 时应该如何创建属性?

    在创建使用 asyncio 的类时 我发现自己处于属性 getter 需要进行 io 操作的情况 因此该函数应该是一个协程 然而 等待房产的感觉却很不寻常 这是我的意思的一个最小的例子 该代码有效并且可以运行 import asyncio
  • 如何在 Python 中将 .docx 转换为 .txt

    我想将大量 MS Word 文件转换为纯文本格式 我不知道如何在 Python 中做到这一点 我在网上找到了以下代码 我的路径是本地路径 所有文件名都类似于 cx xxx 即 c1 000 c1 001 c2 000 c2 001 等 fr
  • 将文本文件转换为 plink PED 和 MAP 格式

    我有以下数据 其中的一小部分 名为 short2 pre snp tumor txt rs987435 C G 1 1 1 0 2 rs345783 C G 0 0 1 0 0 rs955894 G T 1 1 2 2 1 rs608879
  • 为什么 Python ggplot 返回名称“aes”未定义?

    当我使用以下命令时 p ggplot aes x DTM y TMP1 data data 我收到以下错误 NameError name aes is not defined 你可以帮帮我吗 你需要导入aes from ggplot imp
  • 在 python 中使用 ftplib 时

    这是导致错误的相关代码 ftp ftplib FTP server ftp login r user r pass change directories to the incoming folder ftp cwd incoming fil

随机推荐

  • 【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