Python3新手教程 —— 基本类型的运算

基本类型的运算

基本类型是指int、float、bool这三种类型,它们之间的运算是最基础且最直接的,需要读者熟练掌握。在计算机语言中,所谓的运算并不局限于数学中的运算,而是广义的通过运算符连接多个变量来表示某种变量计算的表达式。在Python中运算符可能连接两个变量,也可能只作用于单个变量,前者称为双元运算符,后者称为单元运算符。同时,运算符可能由不只一个字符构成,注意字符之间不可以有空格,必须紧密相连。但是运算符和连接的变量之间可以有任意多个空格,或者没有空格。个人习惯上单元运算符紧连变量,而双元运算符会和连接的两个变量都有一个空格间隔。

整型间的运算

  • 数学运算类:+、-、*、/、//、**分别表示加、减、乘、除、扫地除、幂次。
  • 二进制操作类:<<、>>、&、|、^、~分别表示左移、右移、按位取与、按位取非、按位取异或、按位取非。该类本文不作讲解,在大部分场景下都用不到,在基础教程更新结束后再介绍。
  • 比较逻辑类:>、>=、<、<=、==、!=分别表示严格大于、大于等于、严格小于、小于等于、相等、不等。
  • 取负:-(注意与减运算-的区别,这里是单元运算符)

除与扫地除

在Python中整型的除法会得到浮点型,而扫地除实际上就是除完后再进行下取整,例如3 // 2的结果是1,类型是整型。

比较逻辑类

这一类比较直观,就是判断两数的大小关系,注意其结果类型是布尔型。

特别注意,新手经常犯的错误,老手也可能会犯,就是比较两个变量相等的运算符是==,而不是=,因为=用作了赋值,要避免歧义。

取负

虽然说在数学上和减区别不大,但对于Python来说一个是单元运算符,一个是多元运算符,是有一定区别的,建议读者加以区分,保持严谨。

代码示例

python 复制代码
print(2 + 3, 2 - 3, 2 * 3, 2 / 3, 2 // 3, 2 ** 3)
print(2 >> 3, 2 << 3, 2 & 3, 2 | 3, 2 ^ 3, ~2, ~3)
print(2 > 3, 2 >= 3, 2 < 3, 2 <= 3, 2 == 3, 2 != 3)
print(-2, -3)

会得到运行结果:

plain 复制代码
5 -1 6 0.6666666666666666 0 8
0 16 2 3 1 -3 -4
False False True True False True
-2 -3

浮点型间的运算

浮点型的运算和整型十分类似,这里列出几个区别:

  • 没有二进制类运算
  • 除了逻辑类其他结果类型都是浮点型,包括扫地除

代码示例

python 复制代码
print(2.1 + 3.2, 2.1 - 3.2, 2.1 * 3.2, 2.1 / 3.2, 2.1 // 3.2, 2.1 ** 3.2)
print(2.1 > 3.2, 2.1 >= 3.2, 2.1 < 3.2, 2.1 <= 3.2, 2.1 == 3.2, 2.1 != 3.2)
print(-2.1, -3.2)

会得到运行结果:

plain 复制代码
5.300000000000001 -1.1 6.720000000000001 0.65625 0.0 10.74241047739471
False False True True False True
-2.1 -3.2

整型与浮点型间的运算

大家只需要看作先将整型转化为浮点型再进行浮点型间的运算即可。

布尔型间的运算

布尔型间的运算和整数间的二进制类运算一样,有与、或、异或、非四种。与、或、异或的运算符都是一致的,即&、|、^,而非的运算符是!(因为如果将True视作1,False视作0,那么前三个运算就是整数的运算,但是~1会得到-2,因此要专门用!表示非)。

如果读者不知道与、或、异或是什么意思,可以参照如下表格

变量1 变量2 与运算 或运算 异或运算
False False False False False
False True False True True
True True True True False

当然非运算是单元运算,把False变为True、True变为False。

比较特别的是,Python为常用的逻辑运算设置了对应的等价的关键字:

关键字 运算符
and &
or `
not !

通常我们会使用关键字来表示逻辑关系。

转化为布尔型

为了方便检验一个变量是否为空,Python为每个内置类型都可以转换为布尔型,并且只有在转化的变量在其类型的意义上是空的或者零才会变为False,其他情况下都是True。例如:

python 复制代码
print(bool(0), bool(10))
print(bool(0.0), bool(10.0))
print(bool(''), bool('Hello World!'))

每一条语句输出的都是False True。

赋值运算

除了比较类运算外和单元运算外,其余的运算都将两个同类型的变量计算为一个同类型的结果。有时候我们希望立刻用这个结果赋给参与计算的两个变量中的一个,此时就可以使用赋值运算。赋值运算符就是原本的运算符紧跟一个=,例如:

python 复制代码
x = 2
x += 1
print(x)

会得到输出3。也就是说,x += y等价于x = x + y。同理,还有-=、/=、&=、>>=等等赋值运算。

严格来说,赋值运算并不是运算,因为其构成一条语句,并没有运算结果。

本文复习

  • 运算是什么

    • 什么是单元运算和双元运算
  • 整型间的运算有哪些

    • 扫地除是什么
    • 判断两变量是否相等的运算符是什么
  • 浮点型间的运算有哪些

    • 浮点型和整型运算的规则是什么
  • 布尔型间的运算有哪些

    • 哪些运算有对应的关键字替代
  • 什么是赋值运算

相关推荐
摇滚侠9 分钟前
《On Java 中文版 基础卷》阅读笔记 对象无处不在 03
java·笔记·python
小小小小钰儿34 分钟前
1.5-Python网络编程
开发语言·网络·python·web安全·计算机·网络安全
keke.shengfengpolang36 分钟前
2026年金融风控岗技术能力拆解:SQL取数、Python建模、评分卡项目,校招面试到底考什
python
kyrie_sakura1 小时前
大模型学习7 -- 深度学习2 -- 张量
python·深度学习
智鸟科技GemeOpen开发者智能设备2 小时前
智能插座二次开发如何接入Home Assistant,从零开始完整工程实现(Python+React)
开发语言·python·物联网·react.js·智能家居
hqyjzsb2 小时前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
Andreapiki2 小时前
风险审计校招技术栈拆解:SQL、Python、Power BI在2026届JD中的真实权重
数据库·python·sql
2601_966949652 小时前
股票池发生变化后,如何高效更新行情数据?从全量刷新到增量同步
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
玖石书3 小时前
python-uv-windows环境安装方案
windows·python·uv