python中tuple、int和float的内置方法

        本文基于python3.11,落后版本的方法可能有所不同,tuple(元组)、int(整型)和float(浮点型)都是不可变对象,无法修改它们的值,且它们都是可哈希的,既然是不可变对象,那么它们的内置方法是不可能修改对象本身的,因此都不是修改器(原则上来说,我们在编程的过程中,应该尽量保证所有的函数都是纯函数,对传入的对象进行修改可能造成无法察觉的bug,当然这个原则不适用于实例方法,修改实例本身的方法是随处可见的

        tuple的count(value)和index(value, start, stop)和list的同名方法的作用完全相同(注意stop不包含stop索引本身即可)

        int和float有两个同名方法,as_interger_ratio()方法是返回字面量与1的比值,比如100会返回(100, 1)(我暂时还不知道该方法的应用场景),conjugate()对于实数而言也是无用的方法,就是返回本身,但调用内置方法complex(real, imag)可以创建一个复数类,其conjugate()方法可以返回它的共轭复数,且real和imag可以是float类型

        int有两个关于二进制的方法,bit_length()方法返回这个整数的二进制数长度(负数与其绝对值的返回值一样,值得一提的是,python中的int类型是无限长整数,而负数是通过正数补码实现,这也就导致负数的最高位1在无限长处,这里的实现原理我也不太清楚,对负数调用bin()内置方法会得到一个带符号的二进制数,而不是无限长的一个二进制数),bit_conut()方法必须等于高于3.10版本才能使用,其返回这个整数的二进制数中1的个数,非常反直觉的是,对负数应用该方法仍然得到的是其绝对值的值(个人猜测是为了方便用户查看),以下给出验证python中负数是无限长二进制数的代码:

i = -1
while i != 0:
    i >>= 1
# 执行该代码会陷入无限循环,说明负数永远无法右移至0

        int还有两个关于bytes类型的方法,以后写关于str的内置方法时再细讲

        float类型还有两个方法分别是hex()和fromhex(),看到from我们就可以猜测这是不是一个构造函数,这里确实是,hex()是获取float的十六进制表示,fromhex()自然就是由一个十六进制数获得对应float的实例,注意在任何语言中float类型都是无法准确表示的,即使0.1这样一个简单的浮点数,计算机也不可能准确表示,我们都知道计算机是通过二进制来工作的,0.1的二进制表示是无穷长的,但0.5=2^(-1)、0.75=2^(-1)+2^(-2)是可以准确表示的

        

print(0.1 - 0.01)   # 0.09000000000000001
print(0.5 - 0.75)   # -0.25
# 第一个式子出现了精度问题,在进行不能精确表示的浮点数之间的运算时经常可能出现这种误差
# 平时基本可以忽略,但在科学计算软件中这是一个非常重要的问题

相关推荐

  1. pythontuple、intfloat方法

    2023-12-05 19:32:02       39 阅读
  2. Python 函数 float() 详解

    2023-12-05 19:32:02       14 阅读
  3. python list.sort方法函数sorted

    2023-12-05 19:32:02       36 阅读
  4. python四大容器

    2023-12-05 19:32:02       24 阅读
  5. 如何使用Python函数模块?

    2023-12-05 19:32:02       17 阅读
  6. vue指令自定义指令

    2023-12-05 19:32:02       39 阅读

最近更新

  1. 前端导出pdf

    2023-12-05 19:32:02       1 阅读
  2. Knife4j的原理及应用详解(五)

    2023-12-05 19:32:02       1 阅读
  3. Day2--每日一练

    2023-12-05 19:32:02       1 阅读
  4. 东方博宜1626 - 暑假的旅游计划

    2023-12-05 19:32:02       0 阅读
  5. react小白面试不得不会的20个问题——第二篇

    2023-12-05 19:32:02       0 阅读
  6. 简单滤波算法伪码

    2023-12-05 19:32:02       0 阅读

热门阅读

  1. 快速学习PyQt5的动画和图形效果

    2023-12-05 19:32:02       37 阅读
  2. linux里source、sh、bash、./有什么区别

    2023-12-05 19:32:02       44 阅读
  3. Spring Boot 3.2.0 现已推出

    2023-12-05 19:32:02       44 阅读
  4. Linux驱动开发入门

    2023-12-05 19:32:02       36 阅读
  5. 爬虫框架Scrapy

    2023-12-05 19:32:02       34 阅读
  6. Ajax 是什么? 如何创建一个 Ajax?

    2023-12-05 19:32:02       36 阅读
  7. ChatGPT使用路径:从新手到专家的指南

    2023-12-05 19:32:02       60 阅读
  8. 解决PHPExcel导出一万行以上数据变空白的问题

    2023-12-05 19:32:02       38 阅读
  9. 计算机视觉各个方向概述

    2023-12-05 19:32:02       35 阅读
  10. 第8章 电信支撑网

    2023-12-05 19:32:02       31 阅读
  11. Docker 部署 Spring Boot 项目

    2023-12-05 19:32:02       31 阅读