4.0 Python 数字类型常用操作

news2025/5/10 1:48:30

文章目录

      • 1. Numbers数字型
        • 1.1 int整型
        • 1.2 float浮点型
          • 1. 浮点型
          • 2. 尾数问题
          • 3. 溢出问题
          • 4. 高精度计算模块
          • 5. 无穷大
        • 1.3 complex复数
        • 1.4 bool布尔值
      • 2. 运算符
        • 2.1 算术运算符
        • 2.2 增值运算符
      • 3. 类型转换
        • 3.1 转换为整型
        • 3.2 转为浮点型
      • 4. 进制转换
        • 4.1 十进制转二进制
        • 4.2 十进制转二进制
        • 4.3 十进制转十六进制
        • 4.4 转为十进制
      • 5. 常用函数
        • 5.1 绝对值
        • 5.2 商余
        • 5.3 幂余
        • 5.4 四舍五入
        • 5.5 求最大值
        • 5.5 求最小值

2022-11-12_01491

1. Numbers数字型

Python 有四种数字类型 int(整型), float(浮点型), bool(布尔), complex(复数).
1.1 int整型
整型: 不包含小数部分的数字, 包含正整数与负整数和0.
print(id(1))  # 2318226975024 --> 24
print(id(2))  # 2318226975056 --> 56

Python的整数长度为32, 并且通常是连续分配内存空间的, 不够用使会自动扩容
事实上整数类型的取值范围无限的, 但实际受限于计算机内存的大小.
24 + 32 = 56 从上面的空间地址看, 地址之间正好差32.
print(id(1111111111111111111111111111111111111111111111111111111111111111111111))  
# 2318226975024
print(id(1111111111111111111111111111111111111111111111111111111111111111111112))  
# 2318226975056

1.2 float浮点型
1. 浮点型
浮点型: 带小数点的数字, 于存储单精度浮点或双精度浮点数.
浮点型除了可以使用小数点格式外还可以用科学计算法表示.
在科学计数法中, 为了使公式简便, 可以用带'E'的格式表示, 'E'为exponent(指数)的缩写.
例如: 1.03108次方, 可简写为1.03E+08的形式.
f1 = 1.1

print(f1)  # 1.1
print(type(f1))  # <class 'float'>

# 科学计数法
f2 = 1.03e8
print(f2)  # 103000000.0
print(type(f2))  # <class 'float'>

2. 尾数问题
浮点数之间进行计算时会存在不确定尾数的情况, 这个是计算机内部运算产生的.
# 尾数问题
f1 = 0.1 + 0.2
print(f1)  # 0.30000000000000004

print(f1 == 0.3)  # False

3. 溢出问题
float类型占用4字节内存, 表示小数字, 数据范围为-2^128 ~ 2^128.
浮点型数据占用的字节小, 计算结果过大存在溢出问题.
print(10 ** 1000) 
print(10.0 ** 1000)

运行工具窗口显示:
10000000000000000000000000000000000000....
Traceback (most recent call last):
  File "C:\Users\13600\PycharmProjects\test\test.py", line 3, in <module>
    print(10.0 ** 1000)
    
# 溢出错误: (34, "结果太大")
OverflowError: (34, 'Result too large')

2022-11-10_01394

4. 高精度计算模块
decimal高精度计算模块, 官网: https://docs.python.org/zh-cn/3/library/decimal.html

优点:
* 1. 所表示的数是完全精确的.
* 2. 类包含有效位的概念, 保留尾随零以表示有效位, 例如: 1.30 + 1.20的结果是2.50.
* 3. 具有可更改的精度(默认为28).

使用方法: 
* 1. 导入模块
from decimal import Decimal
* 2. 使用Decimal将浮点型数据进行转换, 要求输入的必须是字符串, 则不会使用decimal模块的运算.
对象(十进制浮点数类型) = Decimal('0.10')  
* 3. 使用转换之后的十进制类型对象参与计算
# 使用Decimal避免尾数问题.
from decimal import Decimal

# 类型转换在计算
f1 = Decimal('0.10') + Decimal('0.20')
print(f1, type(f1))  # 0.30 <class 'decimal.Decimal'>

f2 = 0.30
print(f1 == f2)  # False

# 将 转为字符串
f2 = str(f2)

# 将字符串类型纯数字转为十进制类型
print(f1 == Decimal(f2))  # True

# 解决溢出问题
from decimal import Decimal

# 类型转换在计算
f1 = Decimal('10.0') ** Decimal('1000')
print(f1)  # 1.000000000000000000000000000E+100000

5. 无穷大
在Python中, inf或float('inf')是一个特殊的浮点数值, 表示'正无穷大'.
这是IEEE 754浮点数标准的一部分, 用于表示大于任何有限浮点数的值.
在Python中, 可以使用它来比较或执行其他数学操作, 但需要注意的是, 某些操作可能不会产生有意义的结果.
print(float('inf'))  # inf
1.3 complex复数
复数是由'实部''虚部'构成. Python中, 复数以j或J为后缀.
c1 = 0.5j

print(c1)  # 0.5j
print(type(c1))  # <class 'complex'>

1.4 bool布尔值
布尔值只有True'真'与False'假', (首字母大写). 
布尔值常用条件判断表达式.
Python中的'真''假'的值:
假:False, None,  0,  0.0,  '',  [],  {},  (,) ··· 所有为空的元素···
: 除上之后都为真.
Python中布尔值是属于数字类型, bool  继承 int .
isinstance(, 类型)函数: 判断某个值是否属于否个类型.

image-20221031092922600

2. 运算符

2.1 算术运算符
算术运算符: +  -  *  /  %  //  **

* 整数与浮点数计算的话会结果是浮点型, 整数做除法运算时结果为浮点型.
* 浮点数之间进行计算时会存在不确定尾数的情况.
  这个是计算机内部运算产生的, 在使用浮点数的时候, 最后设置保留的小数尾数, 以免出现意外.
num_0 = 3
num_1 = 7

num = num_0 + num_1 
print(num)  # 10

num = num_1 - num_0
print(num)  # 4

num = num_1 * num_0
print(num)  # 21

num = num_1 / num_0
print(num, type(num))  # 2.3333333333333335 <class 'float'>

num = num_1 // num_0
print(num)  # 2

num = num_1 % num_0
print(num)  # 1

num = num_1 ** num_0
print(num)  # 343

print(9 // 4)  # 9 / 4 = 2.25   向下取整  为 2
print(-9 // 4)  # -9 / 4 =-2.25 向下取整  为-3 ,负数向下-3

2.2 增值运算符
增值运算符: +=  -=  *=  /=  %=  //=  **=
num = 3
num_0 = 5
num_1 = 7

num += num_1  # 10 等同于  num = num + num_1
print(num)

num -= num_1  # 3 等同于  num = num - num_1
print(num)

num *= num_1  # 21 等同于  num = num * num_1
print(num)

num /= num_1  # 3.0 等同于  num = num / num_1
print(num)

num **= num_1  # 2187.0 等同于  num = num ** num_1
print(num)

num %= num_1  # 3.0 等同于  num = num % num_1
print(num)

num_1 //= num_0  # 5 等同于  num = num // num_1
print(num_0)

3. 类型转换

3.1 转换为整型
Python内置int()函数: 将括号内的数据转为整型.
并是不所有数值都可以转换为整型. 
支持:
浮点型, 浮点型转整型舍去小数部分数据.
纯整型字符串, 不能是浮点型字符串, 否则会报错: TypeError:int()无法转换...
i1 = 18

print(i1, type(i1))  # 18 <class 'int'>

# 将纯整型字符串转为整型
i1 = int('123') 
print(int(i1), type(i1))   # 123 <class 'int'>

# 将浮点型转为整型
i2 = int(1.2)
print(i2, type(i2))  # 1 <class 'int'>

3.2 转为浮点型
Python内置float()函数: 将括号内的数据转为浮点型.
并是不所有数值都可以转换为浮点型, 仅支持整型, 纯整型/纯浮点型字符串.
否则会报错: ValueError: 无法将xxx转为浮点型...
f1 = 123.4

print(f1, type(f1))  # 123.4 <class 'float'>

# 整数类型转浮点型
print(float(123))  # 123.0

# 纯整型字符串转浮点型
print(float('123'))  # 123.0

# 将浮点型字符串转为浮点型
print(float('123.4'))  # 123.4

4. 进制转换

数字可以使用不同的进制数表示.
* 以下方法进制转换的结果是字符串类型
4.1 十进制转二进制
bin()函数: 支持十进制转二进制, 使用(0b)开头表示二进制数.
b1 = bin(100)
print(b1, type(b1))  # 0b1100100 <class 'str'>

4.2 十进制转二进制
oct()函数: 支持十进制转八进制, 使用(0o, 零小写o)开头表示十进制数.
o1 = oct(100)
print(o1, type(o1))  # 0o144 <class 'str'>

4.3 十进制转十六进制
hex()函数: 支持十进制转十六进制, 使用(0x)开头表示十六进制数.
h1 = hex(100)
print(h1, type(h1))  # 0x64 <class 'str'>

4.4 转为十进制
int()函数: 支持将二进制, 八进制, 十六进制数转为十进制整数.

使用格式: int('各进制字符串', 进制)
第一个参数: 需要将进制数用单引号扩起来.
第二个参数: 写现在是多少位的进制数.
# 二进制转十进制
i1 = int('0101010101', 2)
print(i1, type(i1))  # 341 <class 'int'>

# 八进制转十进制
i2 = int('   7654321', 8)
print(i2, type(i2))  # 2054353 <class 'int'>

# 十六进制转十进制
i3 = int('   A6B4321', 16)
print(i3, type(i3))  # 174801697 <class 'int'>

5. 常用函数

5.1 绝对值
Python内置abs()函数: 计算数字的绝对值.
print(abs(-10.1))  # 10.1

5.2 商余
Python内置divmod()函数: 把除数和余数运算结果结合起来, 返回一个包含商和余数的元组(a // b, a % b).
print(divmod(7, 2))  # (3, 1)

5.3 幂余
Python内置pow()函数: 计算的次方及计算此方的余数.
pow(x, y)    计算x的y次方.
pow(x, y, z) 计算x的y次方再对z求余.
print(pow(2, 4))  # 16
print(pow(2, 4, 3))  # 1

5.4 四舍五入
Python内置round()函数: 按指定的小数位进行四舍五入运算, 默认不保留小数部分.
print(round(9.4545))  # 9
print(round(9.4545, 2))  # 9.45

5.5 求最大值
Python内置max()函数: 返回给定参数的最大值, 参数可以为序列.
# 生成一个整型序列
print(max(range(4)))  # 3

print(max([1, 2, 3]))  # 3

print(max(1, 2, 3))  # 3

print(max('abc'))  # c

5.5 求最小值
Python内置min()函数: 返回给定参数的最小值, 参数可以为序列.
# 生成一个整型序列
print(min(range(4)))  # 0

print(min([1, 2, 3]))  # 1

print(min(1, 2, 3))  # 1

print(min('abc'))  # a

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1819720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云EdgeOne对比普通CDN的分别

EdgeOne架构图 普通CDN架构图 ​​​​​​​ 腾讯云EdgeOne对比普通CDN的不同点 服务范围和集成度 腾讯云EdgeOne是一体化的综合平台&#xff0c;不仅提供内容分发功能&#xff0c;还包括安全防护、性能优化和边缘计算等服务。EdgeOne提供了DDoS防护、WAF&#xff08;Web应…

洛谷B3642 二叉树的遍历(前序、中序、后序)

题目描述 有一个 &#x1d45b;(&#x1d45b;≤10^6) 个结点的二叉树。给出每个结点的两个子结点编号&#xff08;均不超过 &#x1d45b;&#xff09;&#xff0c;建立一棵二叉树&#xff08;根节点的编号为 1&#xff09;&#xff0c;如果是叶子结点&#xff0c;则输入 0。…

Golang的channel

目录 基本使用 channel 数据结构 阻塞的协程队列 协程节点 构建 channel 写流程 读流程 非阻塞与阻塞 closechan(关闭) 基本使用 创建无缓存 channel c : make(chan int) //创建无缓冲的通道 cc : make(chan int,0) //创建无缓冲的通道 c 创建有缓存 channel c : m…

(三十九)Vue之集中式的状态管理机制Vuex

目录 概念vuex的核心概念State&#xff08;状态&#xff09;Getters&#xff08;获取器&#xff09;Mutations&#xff08;突变&#xff09;Actions&#xff08;动作&#xff09; 搭建vuex环境基本使用getters的使用 上一篇&#xff1a;&#xff08;三十八&#xff09;Vue之插槽…

JDK8新特性【接口新特征、lambda语法、Supplier、Consumer、Function、Predicate】

目录 一、关于接口的新特性1.1 jdk1.8之前的接口重要特性1.2 JDK8以后代码演示 1.3 总结通过代码演示发现作用 二、Lambda表达式[重点]2.1 将匿名内部类写法改写为lambda写法2.2 语法特点能够写成lambda形式的的前提语法特征代码演示深入理解lambda 2.3 总结 三、函数式接口3.1…

社区疫情管理系统

社区疫情管理系统 java web源码 增删改查 适合新手有导入视频 java项目 ssm疫情防控登记管理社区疫情管理源码jsp项目 技术 ssm 源码➕数据库文件➕eclipse导入视频

基于C#开发web网页管理系统模板流程-打包发布

点击返回目录-> 基于C#开发web网页管理系统模板流程-总集篇-CSDN博客 前言 本系列中&#xff0c;作为开发者我们通过ASP.net Web模板设计网页&#xff0c;网页的任何设计、源代码都是直接可见的&#xff0c;在实际应用开发中&#xff0c;显然这些都是商业、公司机密 通过打包…

Vue基础知识:异步DOM更新是什么?$nextTick是什么?到底应该如何使用。什么是同步?什么是异步?

要先了解异步dom更新是什么就必须先了解&#xff0c;什么是同步&#xff1f;什么是异步&#xff1f; 1.什么是同步&#xff1f;什么是异步&#xff1f; 同步&#xff08;Synchronous&#xff09;&#xff1a; 同步操作是按照代码的顺序执行的&#xff0c;每个操作都必须等待上…

SAP OB52 财务账期月结月底月初开关

公告&#xff1a;周一至周五每日一更&#xff0c;周六日存稿&#xff0c;请您点“关注”和“在看”&#xff0c;后续推送的时候不至于看不到每日更新内容&#xff0c;感谢。 这是一条刮刮乐&#xff0c;按住全部选中&#xff1a;点关注的人最帅最美&#xff0c;欢迎&#xff1…

vue2+echarts:echarts在dialog弹框中不显示的解决方案

重点是open方法里使用$nextTick拿到最新的dom&#xff0c;在里面加载echarts //html <el-button click.stop"getIfStorage"></el-button><el-dialog title"图表数据" :visible.sync"ifStorageShowOpen" open"open()" …

嵌入式系统中判断大小端的方法与实现

第一&#xff1a;大小端基本分析 程序判断计算机是大端的还是小端的&#xff0c;判断的思路是确定一个多字节的值(下面使用的是4字节的整数)&#xff0c;将其写入内存(即赋值给一个变量)&#xff0c;然后用指针取其首地址所对应的字节(即低地址的一个字节)&#xff0c;判断该字…

Photoshop中颜色与色调的调整

Photoshop中颜色与色调的调整 Photoshop中的颜色模式RGB模式灰度模式位图模式索引模式CMYK模式Lab模式 Photoshop中的颜色/色调调整命令颜色/色调调整命令的分类亮度/对比度调整命令色阶命令曲线命令曝光度命令自然饱和度命令色相/饱和度命令色彩平衡命令照片滤镜调整命令通道混…

[leetcode]swap-nodes-in-pairs

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyHead new ListNode(0);dummyHead->next head;ListNode* temp dummyHead;while (temp->next ! nullptr && temp->next->next !…

单链表实现:从理论到代码

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言&#xff0c;数据结构 ​ 前言 前面学习了顺序表&#xff0c;顺序表优点&#xff1a; 可以随机访问元素&#xff0c;通过索引能快速定位到元素。存储密…

Python界面编辑器Tkinter布局助手 使用体验

一、发现 我今天在网上搜关于Python Tkinter方面的信息时&#xff0c;发现了Python界面编辑器 Tkinter布局助手 的使用说明。 https://blog.csdn.net/weixin_52777652/article/details/135291731?spm1001.2014.3001.5506 这个编辑器是个开源的项目&#xff0c;个人用户可以…

Python学习笔记7:入门知识(七)

前言 之前说过我更换了新的学习路线&#xff0c;现在是根据官方文档和书籍Python crash course来进行学习的&#xff0c;在目前的学习中&#xff0c;对于之前的知识有一些遗漏&#xff0c;这里进行补充。 学习资料有两个&#xff0c;书籍中文版PDF&#xff0c;关注我私信发送…

Lua实现自定义函数面向对象编程

本文目录 1、引言2、原理3、实例4、层析验证 文章对应视频教程&#xff1a; 暂无&#xff0c;可以关注我的B站账号等待更新。 点击图片或链接访问我的B站主页~~~ 1、引言 在现代软件开发中&#xff0c;面向对象编程&#xff08;OOP&#xff09;已经成为一种广泛使用的编程范式…

nodejs 某音douyin网页端搜索接口及x_bogus、a_bogus(包含完整源码)(2024-06-13)

前言 x_bogus或a_bogus算法大概是对数据、ua、时间戳、浏览器的几个指纹进行计算&#xff0c;拿到一个110位大数组&#xff0c;然后转字符&#xff0c;在头部再添加十二位随机字符&#xff0c;再进行魔改的base64加密。 问&#xff1a;抖音的x_bogus、a_bogus值有什么用&#x…

幸狐RV1106开发板烧录Ubuntu系统与配置SDK,RV1106 LuckFox Pico Max——最新的操作

资料&#xff1a;上手教程 | LUCKFOX WIKI 以及SDK内的文档资料 开发板型号&#xff1a;RV1106 LuckFox Pico Max 烧录系统&#xff1a; Ubuntu 虚拟机系统&#xff1a;Ubuntu 20.04&&Ubuntu22.04 PC系统&#xff1a;win11 占用空间&#xff1a;大概15G 本文主要记…

idea有这个类却报红,无法用快捷键找到

idea有这个类却报红&#xff0c;无法用快捷键找到&#xff0c;但是项目启动却没有任何问题&#xff0c;严重影响到了开发效率&#xff0c;关idea 重新打开没有用。 找了一圈&#xff0c;办法如下&#xff1a; 1、点击左上角的 File—>Invalidate Caches/Restar 2、点击 In…