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

基本类型的运算

基本类型是指intfloatbool这三种类型,它们之间的运算是最基础且最直接的,需要读者熟练掌握。在计算机语言中,所谓的运算并不局限于数学中的运算,而是广义的通过运算符连接多个变量来表示某种变量计算的表达式。在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视作1False视作0,那么前三个运算就是整数的运算,但是~1会得到-2,因此要专门用!表示非)。

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

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

当然非运算是单元运算,把False变为TrueTrue变为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。同理,还有-=/=&=>>=等等赋值运算。

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

本文复习

  • 运算是什么

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

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

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

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

相关推荐
luckys.one4 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
大翻哥哥5 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融
zhousenshan6 小时前
Python爬虫常用框架
开发语言·爬虫·python
IMER SIMPLE7 小时前
人工智能-python-深度学习-经典神经网络AlexNet
人工智能·python·深度学习
CodeCraft Studio7 小时前
国产化Word处理组件Spire.DOC教程:使用 Python 将 Markdown 转换为 HTML 的详细教程
python·html·word·markdown·国产化·spire.doc·文档格式转换
专注API从业者8 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
java1234_小锋8 小时前
[免费]基于Python的协同过滤电影推荐系统(Django+Vue+sqlite+爬虫)【论文+源码+SQL脚本】
python·django·电影推荐系统·协同过滤
看海天一色听风起雨落8 小时前
Python学习之装饰器
开发语言·python·学习
XiaoMu_0019 小时前
基于Python+Streamlit的旅游数据分析与预测系统:从数据可视化到机器学习预测的完整实现
python·信息可视化·旅游
THMAIL9 小时前
深度学习从入门到精通 - 生成对抗网络(GAN)实战:创造逼真图像的魔法艺术
人工智能·python·深度学习·神经网络·机器学习·生成对抗网络·cnn