Python入门基础系列(七)——数字和类型转换
off999 2024-09-13 13:35 35 浏览 0 评论
Python数字一共有四种数据类型:纯整数,长整数,浮点数和复数。
它们不仅支持简单的算术计算,还可以用作量子计算中的复数。在这篇文章中,我将举例来解释它们。
让我们来看看Python中的数字是什么?像Python中的其他类型一样,数字也是对象。他们可以存储一个整数,一个实数或复合 数字。
Python数字是不可变的对象,因此值的任何更改都会导致创建新对象。通常,将一个数值分配给一个变量将获得创建的数字对象。
本篇文章目录
(一)Python中的数字类型
(二)本章知识要点
(三)Python中的类型转换
(四)Python中的外部数字类
(五)Python数学
Python数字 - 数字数据的类型
有趣的是,Python 2.x有四个内置数据类型(int,long,float和complex)来表示数字。后来Python 3.x删除了long并且扩展了int类型以具有无限长度。
Int类型
int类型表示Python中的基本整数数据类型。Python 2.x中的纯整数具有最大值,最大值为sys.maxint的值 。
而在3.x中,int类型被提升为无限长度,从而消除了长整型。
>>> x = 9
>>> type(x)
<type'int'>X = 9 >>> type(X )< type 'INT' >
长型
一个无限长度的整数。在Python 2.x结束之前,整数被允许溢出并变成一长串。这种行为从3.0开始改变,其中ints取代了多头。
>>> x = 9999999999
>>> type(x)#在Python 2.x中,类型将很长。在3.x中,不管大小如何,它都是int。
<type'long'>x = 9999999999 >>> type (x )#在Python 2.x中,类型将会很长。在3.x中,不管大小如何,它都是int。< type “long” >
浮点类型
浮点数表示一个二进制浮点数。在表达式中使用浮点变量会自动将相邻的长整数和整数转换为浮点数。
>>> x = 9.999
>>> type(x)
<type'float'>X = 9.999 >>>type(X )< type 'float' >
复杂的类型
这种类型的数字有一个真实的和虚构的部分。例如 - 表达式(n1 + n2j)表示复数类型,其中n1和n2分别是表示实部和虚部的浮点数。
>>> x = 3 + 4j
>>> type(x)
class'complex '> >>> x.real
3.0
>>> x.imag
Python数字 - 关键点
(一)数字类型按照以下顺序自动转换类型。
Int→Long→Float→Complex
(二)虽然Python 3.x中的整数可以是任意长度,但float类型的数字只能精确到小数点后15位。
(三)通常,我们使用基于小数(基数10)数字系统的数字。但有时,我们可能需要使用其他数字系统,如二进制(基数2),十六进制(基数16)和八进制(基数8)。
在Python中,我们可以使用适当的前缀处理这些数字。见下文
(四)如果你想用Python测试一个数字的类型,那么你应该使用isinstance()函数。
例如:
(五)如果在表达式中使用混合数据类型,那么所有操作数将转为使用最复杂的类型。
(六)在Python中分割整数时要小心。在Python 2.x中,除法(/)将返回一个整数商作为输出。
在Python 3.x中,除法(/)将返回浮点商作为输出。
floor运算符(//)返回整数商,mod(%)运算符给出余数。但是,您可以通过使用divmod()函数来获得这些。
Python中的类型转换
在Python中,将任何数字数据类型转换为另一种数据类型非常简单。我们把这个过程称为Pythonic术语中的强制。
基本操作(如加法,减法)如果其中一个操作数是浮点数,则隐式浮点(默认情况下)为浮点数。
在上面的例子中,第一个整数(2)变成了一个浮点数(2.0)用于加法,输出也是一个浮点数。
但是,Python列出了一个不。诸如int(),float()和complex()之类的内置函数可以显式地在类型之间进行转换。这些函数甚至可以将字符串转换为数字。
请注意,如果您正在将float转换为整数,那么该数字将被截断(即,接近零的整数)。
外部类来处理Python数字
正如你在上面所读到的那样,Python的内置浮点类对控制精度达到了十五个小数位有一个限制。但是,还有其他限制,因为它完全取决于计算机实现的浮点数。例如,请参阅下面的小数点问题。
为了克服这种类型的问题,我们可以在Python中使用十进制模块。
Python十进制
十进制模块提供大多数人熟悉的固定和浮点算法实现。与精度高达15位小数的浮点数不同,十进制模块接受用户定义的值。它甚至可以保留号码中的有效数字。
Python分数
Python打包一个名为'fractions'的模块来处理分数。
分数结合了分子和分母; 两者都是整数数据类型。该模块支持合理的数字运算功能。
以下是创建和使用分数类型对象的一个简单示例。
输出:
Python数学
Python公开了一些内置函数来执行简单的数学计算。
例如: abs(),cmp(),max(),min(),round()。
输出:
除上述方法外,我们还可以在Python中使用数学模块。它提供了以下常用功能。
这里有一些使用ceil()函数的例子。
例子1:
Import math:
输出:
4
7
例子2:
输出:
3
本章小结- Python数字
借助Python数字和数学模块,您可以在Python中执行任何基本到高级的计算。我希望这篇文章能够提升您的学习精神。
无论如何,如果你今天学到了新的东西,那么别介意进一步分享它。并且可以关注我后续一系列Python的相关文章。
本系列文章列表:
Python入门基础系列(二)——环境搭建
Python入门基础系列(三)——关键字,标识符和变量
Python入门基础系列(四)——语句,表达式和缩进
Python入门基础系列(五)——单行和多行注释
Python入门基础系列(六)——基本数据类型
Python入门基础系列(七)——数字和类型转换
Python入门基础系列(八)——列表
Python入门基础系列(九)——运算符
Python入门基础系列(十)——运算符的优先级
相关推荐
- Linux 网络协议栈_linux网络协议栈
-
前言;更多学习资料(包含视频、技术学习路线图谱、文档等)后台私信《资料》免费领取技术点包含了C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,Z...
- 揭秘 BPF map 前生今世_bpfdm
-
1.前言众所周知,map可用于内核BPF程序和用户应用程序之间实现双向的数据交换,为BPF技术中的重要基础数据结构。在BPF程序中可以通过声明structbpf_map_def...
- 教你简单 提取fmpeg 视频,音频,字幕 方法
-
ffmpeg提取视频,音频,字幕方法(HowtoExtractVideo,Audio,SubtitlefromOriginalVideo?)1.提取视频(ExtractVi...
- Linux内核原理到代码详解《内核视频教程》
-
Linux内核原理-进程入门进程进程不仅仅是一段可执行程序的代码,通常进程还包括其他资源,比如打开的文件,挂起的信号,内核内部的数据结构,处理器状态,内存地址空间,或多个执行线程,存放全局变量的数据段...
- Linux C Socket UDP编程详解及实例分享
-
1、UDP网络编程主要流程UDP协议的程序设计框架,客户端和服务器之间的差别在于服务器必须使用bind()函数来绑定侦听的本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址的某个端口地址。...
- libevent源码分析之bufferevent使用详解
-
libevent的bufferevent在event的基础上自己维护了一个buffer,这样的话,就不需要再自己管理一个buffer了。先看看structbufferevent这个结构体struct...
- 一次解决Linux内核内存泄漏实战全过程
-
什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费.发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中...
- 彻底搞清楚内存泄漏的原因,如何避免内存泄漏,如何定位内存泄漏
-
作为C/C++开发人员,内存泄漏是最容易遇到的问题之一,这是由C/C++语言的特性引起的。C/C++语言与其他语言不同,需要开发者去申请和释放内存,即需要开发者去管理内存,如果内存使用不当,就容易造成...
- linux网络编程常见API详解_linux网络编程视频教程
-
Linux网络编程API函数初步剖析今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。1、socket(family...
- Linux下C++访问web—使用libcurl库调用http接口发送解析json数据
-
一、背景这两天由于一些原因研究了研究如何在客户端C++代码中调用web服务端接口,需要访问url,并传入json数据,拿到返回值,并解析。 现在的情形是远程服务端的接口参数和返回类型都是json的字符...
- 平衡感知调节:“系统如人” 视角下的架构设计与业务稳定之道
-
在今天这个到处都是数字化的时代,系统可不是一堆冷冰冰的代码。它就像一个活生生的“数字人”,没了它,业务根本转不起来。总说“技术要为业务服务”,但实际操作起来问题不少:系统怎么才能快速响应业务需求?...
- 谈谈分布式文件系统下的本地缓存_什么是分布式文件存储
-
在分布式文件系统中,为了提高系统的性能,常常会引入不同类型的缓存存储系统(算法优化所带来的的效果可能远远不如缓存带来的优化效果)。在软件中缓存存储系统一般可分为了两类:一、分布式缓存,例如:Memca...
- 进程间通信之信号量semaphore--linux内核剖析
-
什么是信号量信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠...
- Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门
-
一、前言在推流领域,尤其是监控行业,现在主流设备基本上都是265格式的视频流,想要在网页上直接显示监控流,之前的方案是,要么转成hls,要么魔改支持265格式的flv,要么265转成264,如果要追求...
- 30 分钟搞定 SpringBoot 视频推拉流!实战避坑指南
-
30分钟搞定SpringBoot视频推拉流!实战避坑指南在音视频开发领域,SpringBoot凭借其快速开发特性,成为很多开发者实现视频推拉流功能的首选框架。但实际开发中,从环境搭建到流处理优...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)