当前位置 博文首页 > 文章内容

    Python基础讲义(一):数值类型与运算

    作者: 栏目:未分类 时间:2020-11-15 18:00:15

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    0x01内容导图

    0x02变量的理解

    • 对象包含类型和值,对象存储需要内存
    • 字面量,一次使用
    • 定义变量实质是将对象地址与变量绑定,方便多次使用
    • 变量名是内存地址的别名,即指向对象的引用
    • 变量本身无类型,它指向的对象有类型
    • 变量定义语法:
      • 变量名 = 初值
      • Python支持多值赋值,x, y... = 1, 2, ...
    • 内置函数type:获取对象类型;内置函数id:获取对象id,唯一性标志

    代码示例

    >>> type(3)			#获取对象3的类型
    <class 'int'>
    >>> x = 3			#变量名x与对象3绑定,通过x可访问到对象3
    >>> x + 5
    8
    >>> id(x)
    1674433616			#对象id,具体数据与本地机器相关
    >>> x, y = 3, 5		        #Python特有的多值赋值
    # 有了这个特性,交换变量的值变得很简单
    >>> x, y = y, x
    >>> x, y
    (5, 3)
    
    • 标识符命名规则:
      • 第一个字符必须是字母表中字母或下划线 _
      • 标识符的其他的部分由字母、数字和下划线组成
      • 标识符对大小写敏感
      • 不能与关键字相同

    0x03数值类型

    • 整数:十进制、十六进制、二进制表示;理论上无限大(受内存限制)
    • 浮点数:64位,双精度,有误差;可以使用科学计数法
      • 1/2 + 1/3 + 1/6,不是精确的1
      • 0.1+0.2,不等于0.3
      • x = 1.2e3
    • 复数:用于科学计算;虚部用j表示
    • 布尔类型:逻辑值,True或者False

    代码示例

    >>> a = 0x12				#十六进制
    >>> a
    18
    >>> 0b11					#二进制
    3
    >>> 2 ** 100				#天然支持大数,2的100次方
    1267650600228229401496703205376
    >>> 1/2 + 1/3 + 1/6
    0.9999999999999999
    

    0x04表达式运算

    • 算术运算
      • +、-、*、**(幂运算);/(数学意义上的除法)、//(整除取商)、%(整除取余)
      • 扩展关系:整数->浮点数->复数,运算结果与参与运算的高级操作数保持一致
      • 复合赋值:a = a op b => a op= b,书写简便、高效
      • 模运算理解:越界翻转,周期特点

    代码示例

    >>> m = 137			#分钟,转换为(小时,分)
    >>> hs, ms = m // 60, m % 60
    >>> hs, ms
    (2, 17)
    >>> x = 5
    >>> x += 3			#相当于x = x + 3,推荐使用复合赋值
    
    • 关系运算
      • 六种:>、>=、<、<=、==、!=
      • 运算结果为布尔类型
      • 注意判等运算与赋值运算在形式上的区别
    • 条件运算
      • 三种:条件与and、条件或or、条件非not
      • 运算结果为布尔类型
      • 短路效应

    代码示例

    >>> x, y = 10, 5
    >>> x > y
    True
    >>> x, y = 75, "女"
    >>> y == "女" and x >= 60			#思考两个条件的顺序
    True
    #闰年判断表达式
    >>> y = 2000
    >>> y % 400 == 0 or (y % 4 == 0 and y % 100 != 0)
    True
    

    0x05常用内置函数

    • divmod(x, y):模商同时运算
    • round(x[, 精度]):四舍五入。注意:中间值,向偶数舍
    • int/float(x):转换函数

    代码示例

    >>> x, y = divmod(137, 60)
    >>> x, y
    (2, 17)
    >>> round(2.5)
    2
    >>> round(3.5)
    4
    >>> int("3")
    3
    >>> int(3.8)							#浮点数转整数,截断
    3
    

    0x06数学函数库

    • 引用库的方式:
      • import math
      • from math import *
    • 常用函数
      • ceil(x):向上取整
      • floor(x):向下取整
      • gcd(x, y):返回最大公约数
      • isclose(x, y):浮点数比较,可选参数rel_tol(相对误差),abs_tol(绝对误差)

    代码示例

    >>> import math
    >>> math.ceil(2.1)
    3
    >>> math.floor(2.9)
    2
    >>> math.gcd(24, 18)
    6
    >>> math.isclose(2.0, 2.001, abs_tol = 0.001)
    True
    #一元二次方程求解
    >>> a, b, c = 1, -2, -3
    >>> delta = math.sqrt(b*b - 4 * a * c)
    >>> x1 = (-b + delta) // 2 * a
    >>> x2 = (-b - delta) // 2 * a
    >>> x1, x2
    3.0, -1.0
    

    0x07小结

    • 理解变量的意义
    • 熟悉数值类型及其运算
    • 熟练掌握常用内置函数
    • 掌握标准库的导入,熟练掌握math库常用函数