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。同理,还有-=/=&=>>=等等赋值运算。

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

本文复习

  • 运算是什么

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

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

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

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

相关推荐
思则变1 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
漫谈网络2 小时前
WebSocket 在前后端的完整使用流程
javascript·python·websocket
try2find3 小时前
安装llama-cpp-python踩坑记
开发语言·python·llama
博观而约取4 小时前
Django ORM 1. 创建模型(Model)
数据库·python·django
精灵vector6 小时前
构建专家级SQL Agent交互
python·aigc·ai编程
Zonda要好好学习6 小时前
Python入门Day2
开发语言·python
Vertira6 小时前
pdf 合并 python实现(已解决)
前端·python·pdf
太凉6 小时前
Python之 sorted() 函数的基本语法
python
项目題供诗6 小时前
黑马python(二十四)
开发语言·python
晓13137 小时前
OpenCV篇——项目(二)OCR文档扫描
人工智能·python·opencv·pycharm·ocr