• 【零基础学Python】运算符



    一、算数运算符

    加、减、乘、取模四个运算符比较简单,在使用时也没有什么问题。下面着重讲解一下其他算数运算符

    1.除法

    除法需要注意的就是除零错误。

    print(10 / 0)
    
    • 1

    运行上面的代码会得到下面的报错,这样的在运行时出现的错误也叫“抛异常”。如果程序运行过程中抛异常,那么程序就直接终止了,这之后的代码也不会再运行。
    在这里插入图片描述
    在Python中,除数是0.0时也会报错,值得注意的是在某些编程语言中除0.0会得到无穷大的结果,但Python都认为是除零错误。

    除此之外,整数与整数相除如果有小数不会截断,会得到小数的结果,比如在C语言中1/2=0,而在Python中1/2=0.5。


    2.乘方

    Python中用两个乘号表示乘方运算,指数可以是整数也可以是小数(开方)。

    print(2**3)
    print(4**0.5)
    print(4**-1)
    
    • 1
    • 2
    • 3

    运行结果如下:
    在这里插入图片描述


    3.地板除

    这里的地板除就是C/C++等语言中的除法,当有小数时直接把小数部分截断,对整数部分“向下取整”(这里要注意正负数的区别)。

    print(7 / 2)
    print(7 // 2) # 3.5向下取整得3
    print(-7 // 2) # -3.5向下取整得-4
    
    • 1
    • 2
    • 3

    在这里插入图片描述


    二、关系运算符

    1.整数

    像<、 <=、 >、 >=、 ==、 !=这样的运算符称为关系运算符,它们是用来比较操作数之间的关系的。

    关系运算符对应的表达式返回的结果是布尔类型,若表达式为真,返回True,否则返回False。

    a = 10
    b = 20
    print(a > b)
    print(a >= b)
    print(a < b)
    print(a <= b)
    print(a == b)
    print(a != b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    这些表达式很简单也很容易理解,这里不多赘述。

    在这里插入图片描述


    2.字符串

    关系运算符不仅可以比较数字之间的关系,还可以比较字符串的“大小”,比较的依据是ASCII码,从前往后对应的字符小则小,若相等则继续向后比较。

    a = "hello"
    b = 'world'
    print(a > b)
    print(a >= b)
    print(a < b)
    print(a <= b)
    print(a == b)
    print(a != b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述


    3.浮点数

    这里主要需要说明的就是浮点数使用 == 比较时会有一定的风险,因为浮点数在内存中的存储和表示一般是存在误差的,这样的误差看起来很小,但在运算时可能被放大,导致 == 出现误判。

    比如下面的代码

    print(0.1 + 0.2 == 0.3)
    print(0.1)
    print(0.2)
    print(0.1 + 0.2)
    print(0.3)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    判断0.1 + 0.2 == 0.3时给出False,原因是0.1和0.2在做加法时出现了误差,导致最终结果不是刚刚好的0.3,虽然误差非常非常小,但仍然是不相等的。

    在这里插入图片描述

    下面是浮点数的正确比较方法,由于大多数浮点数在存储时都是有误差的,所以只要给一个能接受的误差限度,如果两个浮点数的差距比这个误差限度小,那么就认为这两个浮点数是相等的。

    eps = 1e-6  # 误差限度
    a = 0.1 + 0.2
    b = 0.3
    
    print(-eps < (a - b) < eps)  # Python中支持这种连续小于的写法(C/C++不支持)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这样就会输出True。

    在这里插入图片描述


    三、逻辑运算符

    Python的逻辑运算符有and、or、not,对应C语言中的&&、||、!。

    a = 10
    b = 20
    c = 30
    print((a < b) and (b < c))  # a < b和b < c都成立,输出True
    print((a > b) or (b < c))  # a > b不成立但b < c成立,输出True
    print(not (a < b))  # a < b为True,取反后为False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    这里还要注意:

    • 对于and操作,如果左侧的表达式为False,那么整体的值一定是False,右侧表达式的结果是什么都无关紧要,所以就不会再去计算右侧的表达式。
    • 对于or操作,如果左侧的表达式为True,那么整体的值一定是True,右侧表达式的结果是什么都无关紧要,所以就不会再去计算右侧的表达式。

    四、赋值运算符

    = 表示赋值,意义就是把右侧的值填到左侧的地址中(==是比较左右两个值是否相等,一定要区分清楚)。

    这个运算符比较简单,借此介绍一个Python中比较好用的操作。

    在之前的C语言中,想要交换两个变量的值需要如下所示,创建一个temp变量来接受其中的一个值,比较麻烦。

    a = 10
    b = 20
    print(a, b)
    tmp = a
    a = b
    b = tmp
    print(a, b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    Python中提供了多元赋值,一步到位完成交换,写法简便且可读性很高。

    a = 10
    b = 20
    print(a, b)
    
    a, b = b, a  # 多元赋值
    print(a, b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述


    感谢阅读,如有错误请批评指正

  • 相关阅读:
    内部表和外部表的区别
    finally执行语句的注意和小陷阱
    30、Java高级特性——Java API、枚举、包装类、装箱和拆箱
    前端项目使用指定字体样式
    第一章 计算机系统概述
    java基于微信小程序的游戏外包管理信息系统 uniapp 小程序
    Python基础教程:关于序列操作的方式方法
    【JavaSE】Java集合
    [PAT练级笔记] 68 Basic Level 1068 万绿丛中一点红
    力扣206 - 反转链表【校招面试高频考题】
  • 原文地址:https://blog.csdn.net/weixin_51983604/article/details/127465326