likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 4

基本类型的运算

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

整型间的运算

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

除与扫地除

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

比较逻辑类

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

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

取负

虽然说在数学上和减区别不大,但对于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)

会得到运行结果:

5 -1 6 0.6666666666666666 0 8
0 16 2 3 1 -3 -4
False False True True False True
-2 -3

浮点型间的运算

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

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

代码示例

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)

会得到运行结果:

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与运算或运算异或运算
FalseFalseFalseFalseFalse
FalseTrueFalseTrueTrue
TrueTrueTrueTrueFalse

当然非运算是单元运算,把False变为TrueTrue变为False

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

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

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

转化为布尔型

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

print(bool(0), bool(10))
print(bool(0.0), bool(10.0))
print(bool(''), bool('Hello World!'))

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

赋值运算

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

x = 2
x += 1
print(x)

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

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

本文复习

  • 运算是什么

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

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

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

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