zoukankan      html  css  js  c++  java
  • 小白学 Python(5):基础运算符(上)

    人生苦短,我选Python

    前文传送门

    小白学 Python(1):开篇

    小白学 Python(2):基础数据类型(上)

    小白学 Python(3):基础数据类型(下)

    小白学 Python(4):变量基础操作

    前言

    前面我们讲了变量的基础操作,本文我们接着讲运算符。

    运算符根据用途可以分为以下这么几类:

    • 算术运算符
    • 比较运算符
    • 赋值运算符
    • 逻辑运算符
    • 成员运算符
    • 身份运算符

    本篇我们先介绍前两个,算术运算符和比较运算符。

    算数运算符

    算术运算符顾名思义就是我们做数字计算的时候用到的运算符,当然,加减乘除肯定都有,除此之外呢,还有程序中常见的取摸、取幂和取整除。详细如下表:

    运算符描述
    +
    -
    *
    /
    % 取模 - 返回除法的余数
    ** 幂 - 返回x的y次幂
    // 取整除 - 向下取接近除数的整数

    我们来看几个简单的例子:

    a = 5
    b = 10
    
    c = a + b
    print("1. c 的值为:", c)
    
    c = a - b
    print("2. c 的值为:", c)
    
    c = a * b
    print("3. c 的值为:", c)
    
    c = a / b
    print("4. c 的值为:", c)
    
    c = a % b
    print("5. c 的值为:", c)
    
    c = a ** b
    print("6. c 的值为:", c)
    
    # 改变 a 和 b 的值
    
    a = 10
    b = 5
    
    c = a // b
    print("7. c 的值为:", c)

    计算结果如下:

    1. c 的值为: 15
    2. c 的值为: -5
    3. c 的值为: 50
    4. c 的值为: 0.5
    5. c 的值为: 5
    6. c 的值为: 9765625
    7. c 的值为: 2

    上面的栗子都整形的计算,如果是不同类型的数据运算,会发生隐式类型转换。

    类型转换的规则由低等向高等转换。

    bool(布尔) < int(整形) < float(浮点型) < complex(复数)

    我们再看几个栗子:

    a = 1
    b = 1.5
    c = a + b
    print("8. c 的值为:", c, ",c 的类型为:", type(c))
    
    d = True
    e = c + d
    print("9. e 的值为:", e, ",e 的类型为:", type(e))
    
    f = 2 + 4j
    g = e + f
    print("10. g 的值为:", g, ",g 的类型为:", type(g))

    计算结果如下:

    8. c 的值为: 2.5 ,c 的类型为: <class 'float'>
    9. e 的值为: 3.5 ,e 的类型为: <class 'float'>
    10. g 的值为: (5.5+4j) ,g 的类型为: <class 'complex'>

    注意: 在算术运算时,True代表1,False代表0

    运算内置函数

    内置的意思就是安装好就有,无需额外安装,就比如我们每次买回来的新手机都有一堆内置的软件:)

    Python 提供的内置函数如下图:

    我们这里选取一些和计算相关的常用的内置函数做一些简单的讲解和演示(个人觉得演示更加的重要):

    函数含义
    abs(x) 返回一个数的绝对值。实参可以是整数或浮点数。如果实参是一个复数,返回它的模。
    complex([real[, imag]]) 返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。
    divmod(a, b) 它将两个(非复数)数字作为实参,并在执行整数除法时返回一对商和余数。
    float([x]) 返回从数字或字符串 x 生成的浮点数。
    pow(x, y[, z]) 返回 x 的 y 次幂;如果 z 存在,则对 z 取余(比直接 pow(x, y) % z 计算更高效)。两个参数形式的 pow(x, y) 等价于幂运算符: x**y。
    round(number[, ndigits]) 返回 number 舍入到小数点后 ndigits 位精度的值。 如果 ndigits 被省略或为 None,则返回最接近输入值的整数。
    sum(iterable[, start]) 从 start 开始自左向右对 iterable 中的项求和并返回总计值。 start 默认为 0。 iterable 的项通常为数字,开始值则不允许为字符串。
    bin(x) 将一个整数转变为一个前缀为“0b”的二进制字符串。
    oct(x) 将一个整数转变为一个前缀为“0o”的八进制字符串。
    hex(x) 将整数转换为以“0x”为前缀的小写十六进制字符串。
    chr(i) 返回 Unicode 码位为整数 i 的字符的字符串格式。
    ord(c) 对表示单个 Unicode 字符的字符串,返回代表它 Unicode 码点的整数。
    bool([x]) 返回一个布尔值,True 或者 False。

    测试示例如下:

    print("11. -1 的绝对值为:", abs(-1))
    
    print("12. 创建的复数为:", complex(1, -2))
    
    print("13. 商和余数为:", divmod(10, 3))
    
    print("14. 浮点型转换:", float(1))
    
    print("15. 10的3次幂为:", pow(10, 3))
    
    print("16. 四舍五入为:", round(5.5))
    
    print("17. 集合求和结果为:", sum({1, 2, 3 ,4}))
    
    print("18. 整数20的二进制为:", bin(20))
    
    print("19. 整数20的八进制为:", oct(20))
    
    print("20. 整数20的十六进制为:", hex(20))
    
    print("21. Unicode 为 97 的字符串:", chr(97))
    
    print("22. 字符串 a 的 Unicode 码:", ord('a'))
    
    print("23. 123 的 boolean 值为:", bool(123))
    
    print("24. 空字符串的 boolean 的值为:", bool(''))

    测试结果如下:

    11. -1 的绝对值为: 1
    12. 创建的复数为: (1-2j)
    13. 商和余数为: (3, 1)
    14. 浮点型转换: 1.0
    15. 10的3次幂为: 1000
    16. 四舍五入为: 6
    17. 集合求和结果为: 10
    18. 整数20的二进制为: 0b10100
    19. 整数20的八进制为: 0o24
    20. 整数20的十六进制为: 0x14
    21. Unicode 为 97 的字符串: a
    22. 字符串 a 的 Unicode 码: 97
    23. 123 的 boolean 值为: True
    24. 空字符串的 boolean 的值为: False

    比较运算符

    从字面意思来理解,比较运算符就是比较两个数值或者字符串类型的数据,返回一个布尔值。

    比较运算符有以下几种:

    运算符描述
    == 等于 - 比较对象是否相等
    != 不等于 - 比较两个对象是否不相等
    > 大于 - 返回x是否大于y
    < 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
    >= 大于等于 - 返回x是否大于等于y。
    <= 小于等于 - 返回x是否小于等于y。

    下面我们举几个栗子:

    a = 5
    b = 10
    
    if (a == b):
        print("25. a 等于 b")
    else:
        print("25. a 不等于 b")
    
    if (a != b):
        print("26. a 不等于 b")
    else:
        print("26. a 等于 b")
    
    if (a < b):
        print("27. a 小于 b")
    else:
        print("27. a 大于等于 b")
    
    if (a > b):
        print("28. a 大于 b")
    else:
        print("28. a 小于等于 b")
    
    if (a <= b):
        print("29. a 小于等于 b")
    else:
        print("29. a 大于  b")
    
    if (b >= a):
        print("30. b 大于等于 a")
    else:
        print("30. b 小于 a")

    结果如下:

    25. a 不等于 b
    26. a 不等于 b
    27. a 小于 b
    28. a 小于等于 b
    29. a 小于等于 b
    30. b 大于等于 a

    示例代码

    本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。

    示例代码-Github

    示例代码-Gitee

    转载声明:本博客由极客挖掘机创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。
  • 相关阅读:
    Android 网络优化,使用 HTTPDNS 优化 DNS,从原理到 OkHttp 集成
    WebView,我已经长大了,知道自己区分是否安全了!
    “崩溃了?不可能,我全 Catch 住了” | Java 异常处理
    Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
    图解:HTTP 范围请求,助力断点续传、多线程下载的核心原理
    c/c++ 读入一行不确定个数的整数
    LeetCode:Length of Last Word
    LeetCode:Permutation Sequence
    机器学习:判别模型与生成模型
    LeetCode:Jump Game I II
  • 原文地址:https://www.cnblogs.com/alliswell2king/p/11753872.html
Copyright © 2011-2022 走看看