python中合法数字_python中的数字-程序员宅基地

技术标签: python中合法数字  

Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

python中数字对象的创建如下,

a = 123

b = 1.23

c = 1+1j

可以直接输入数字,然后赋值给变量。

同样也可是使用类的方式:

a = int(123)

b = float(1.23)

c = complex(1+1j)

类的方式创建一般不用,直接输入数字就好了。

python中的数字包括了整型 int ,长整型 long , 浮点型 float , 复数 complex ,其差别为:

int(整型)

也称有符号整数,只有正或负整数,不带小数点。

其和长整型在于整数有一定的位数限制:

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

一旦超过位数,则会自动转换为长整型(python2.2以后的版本)

long(长整型)  理论上是无限长的,但数据终究是储存在内存中的,所以实际长度限制取决于内存的大小

float(浮点型)  带有小数的数字都被称为浮点型

complex(复数)

就是数学中的复数,定义和数学中的一样(z=a+bi,这里a和b是实数,i是虚数单位,例如1+5j)

Python Number 类型转换

int(x [,base])将x转换为一个整数long(x [,base])将x转换为一个长整数float(x )将x转换到一个浮点数complex(real [,imag ])创建一个复数str(x )将对象x 转换为字符串repr(x )将对象x 转换为表达式字符串eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s )将序列s 转换为一个元组list(s )将序列s 转换为一个列表chr(x )将一个整数转换为一个字符unichr(x )将一个整数转换为Unicode字符ord(x )将一个字符转换为它的整数值hex(x )将一个整数转换为一个十六进制字符串oct(x )将一个整数转换为一个八进制字符串

一.整型

 int

可以看出其内置方法分为3种:

1.普通方法(已经在代码中注释说明)

2.相当于某些内置函数的方法(参考这里)

3.与运算符相关的方法

这里详细介绍一下python的运算符:

1.算数运算符

以下假设变量a=10,变量b=20:

2.比较运算符

以下假设变量a=10,变量b=20:

关于python中比较运算符使用的总结:

1.python中任意对象都可以比较

2.相同类型的对象(实例),如果是数字型(int/float/long/complex),则按照简单的大小来比较;如果是非数字型,且类(型)中定义了__cmp__(含__gt__,__lt__等)则按照__cmp__来比较,否则按照地址(id)来比较。

3.不同类型的对象(实例),如果其中一个比较对象是数字型(int/float/long/complex等),则数字型的对象 [1,2], "abc" < (1,2)。

4.对于自定义的类(型)实例,如果继承自基本类型,则按照基本类型的规则比较(1-3)。否则,old-style class < new-style class, new-style class之间按照类型名顺序比较,old-style class之间按照地址进行比较。

5.bool类型是int的子类,且True=1, False=0,比较时按照1-4来比较,如True > -1, True < 4.2, True < "abc"等

这部分内容转载于:戳这里

3.赋值运算符

以下假设变量a=10,变量b=20

4.位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

下表中变量 a = 60,b = 13

5.逻辑运算符

以下假设变量 a = 10, b=20

6.成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

7.身份运算符

身份运算符用于比较两个对象的存储单元

这里要讲讲python中的内存池(缓冲池)了,python使用内存池来管理小的整型数和小的字符串等等。

什么意思呢?

当我们执行以下赋值运算时

a = 123

b = 123

理论上是要分别在内存中创建两个值,然后赋值给变量的,但是这样做实在是有点浪费,明明是一样的数,却要占用两个内存空间。

所以python为了节约内存,引入了内存池,当小的整型(-5~257,不包括257)要多次创建时,只创建一次,后面的都将引用指向同一个地方,此时使用身份运算符会出现:

字符串的则以256个ascll码为分界

有兴趣的可以参考:戳这里

8.运算符的优先级

另外,我们也可以像数学一样使用括号() ,来指定某个运算先进行

更多参考:戳这里

有别人做好的轮子就是不一样,一路复制粘贴就好了,真轻松。

二、长整型

和整型基本一样,这里就不重复了。自己可以用 help() 函数查看。

遇事不决喊救命

三、浮点型

这里就不全部列举了,只讲讲不同的。

| __setformat__(...)

| float.__setformat__(typestr, fmt) -> None

|

| You probably don't want to use this function. It exists mainly to be

| used in Python's test suite.

|

| typestr must be 'double' or 'float'. fmt must be one of 'unknown',

| 'IEEE, big-endian' or 'IEEE, little-endian', and in addition can only be

| one of the latter two if it appears to match the underlying C reality.

|

| Override the automatic determination of C-level floating point type.

| This affects how floats are converted to and from binary strings.

一个内部方法,用于内部测试的,官方都说了You probably don't want to use this function(你可能不想使用这个函数),而实际上我们也用不到,我也不知道有什么用,一般可以无视。

| __trunc__(...)

| Return the Integral closest to x between 0 and x.

返回最接近x从0积分和x,貌似和积分运算有关,没用过

| as_integer_ratio(...)

| float.as_integer_ratio() -> (int, int)

|

| Return a pair of integers, whose ratio is exactly equal to the original

| float and with a positive denominator.

| Raise OverflowError on infinities and a ValueError on NaNs.

|

| >>> (10.0).as_integer_ratio()

| (10, 1)

| >>> (0.0).as_integer_ratio()

| (0, 1)

| >>> (-.25).as_integer_ratio()

| (-1, 4)

返回一个由两个数字组成的元祖,而两个数字相除就等于原浮点数,其实就是返回一个最简分数,分子在前面,分母在后面。

| conjugate(...)

| Return self, the complex conjugate of any float.

返回本身的共轭复数

| fromhex(...)

| float.fromhex(string) -> float

|

| Create a floating-point number from a hexadecimal string.

| >>> float.fromhex('0x1.ffffp10')

| 2047.984375

| >>> float.fromhex('-0x1p-1074')

| -4.9406564584124654e-324

用一个十六进制的字符串来创建一个浮点数

| hex(...)

| float.hex() -> string

|

| Return a hexadecimal representation of a floating-point number.

| >>> (-0.1).hex()

| '-0x1.999999999999ap-4'

| >>> 3.14159.hex()

| '0x1.921f9f01b866ep+1'

上面方法的逆运算,返回一个浮点数的十六进制表示的字符串

| is_integer(...)

| Return True if the float is an integer.

判断一个浮点数是否为整数

其实就是看小数位是否都为0

四、复数

都是一些运算和内置函数相关的,唯一特别的是

| conjugate(...)

| complex.conjugate() -> complex

|

| Return the complex conjugate of its argument. (3-4j).conjugate() == 3+4j.

返回一个原复数的共轭复数

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39566864/article/details/111729871

智能推荐

ESP32 (UART 接收发送)-串口之接收发送通讯(4)_esp32接收发送16进制指令-程序员宅基地

文章浏览阅读9.7k次,点赞8次,收藏54次。提示:本博客作为学习笔记,有错误的地方希望指正文章目录一、ESP32串口介绍二、硬件设计三、实现代码四、串口实验演示结果五、ESP32串口函数API5.1、uart_types.h文件中的内容的API5.2、在uart.h文件中的内容的API一、ESP32串口介绍  UART 是一种以字符为导向的通用数据链,可以实现设备间的通信。异步传输的意思是不需要在发送数据上添加时钟信息。这也要求发送端和接收端的速率、停止位、奇偶校验位等都要相同,通信才能成功。  一个典型的 UART 帧开始于一个起始位,紧接_esp32接收发送16进制指令

第4章 学习Shader所需的数学基础(下)(坐标空间及其变换)_扩展到齐次坐标空间-程序员宅基地

文章浏览阅读580次。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ..._扩展到齐次坐标空间

插入排序、冒泡排序、选择排序、快速排序、归并排序、堆排序-程序员宅基地

文章浏览阅读345次。插入排序、冒泡排序、选择排序、快速排序

【Linux】Bonding配置,管理-程序员宅基地

文章浏览阅读217次。1 通过Ifenslave手动配置Bonding该方法适用于某些发行包,它们的网络初始化脚本(sysconfig或initscripts包)没有bonding相关的知识。SuSE Linux Enterprise Server 版本8就是这样的一个发行包。对于这些系统一般的方法是,把bonding模块的参数放进/etc/modules.conf或..._echo "all" > /sys/class/net/bond0/bonding/arp_validate echo "100" > /sys

pip更新或安装包的时候出现错误:拒绝访问_pip23.3.2安装包时拒绝访问-程序员宅基地

文章浏览阅读4.7k次,点赞3次,收藏8次。pip更新安装包的时候出现错误,如下图所示:解决方法是:pip install --user [要安装的包] #加上一个–user就好了_pip23.3.2安装包时拒绝访问

随便推点

程序员面试被要求徒手写代码?你与顶级程序员差别就在这!_自从自己入职稳定以后,就一直在整理自己这一段时间自己的经历,想要写下来。今天是-程序员宅基地

文章浏览阅读346次。在面试中,你被要手写代码,原本自信心爆棚的你突然间提笔忘字。在一张纸上反复涂涂画画,最后勉强的写出了一个功能。结果却漏洞百出。面试过程相当不顺利,丢下笔,敷衍的结束了这场面试,回去对周围的朋友苦涩地说:这都什么时代了,还要求手写代码?这家公司落后了。然而,这就是你与顶级程序员最根本的差距。那么顶级程序员们手写代码都特别厉害吗?随便一动笔就是行云流水,一泻千里?不不不!也许,他们根本就没手写过代..._自从自己入职稳定以后,就一直在整理自己这一段时间自己的经历,想要写下来。今天是

【c++】rand()随机函数的应用(二)——舒尔特方格数字的生成_山东大学c++舒尔特方格代码-程序员宅基地

文章浏览阅读800次。本例提出了一种新的方法实现不同维数舒尔特方格的生成方法,需要用到rand()、srand()函数,在算法上采用动态取模方法。_山东大学c++舒尔特方格代码

android输入法好用,安卓手机输入法哪个最好用?-程序员宅基地

文章浏览阅读2.5k次。纵观目前的安卓手机输入法,已经获得大多数用户认可的有以下四种:搜狗输入法、百度输入法、QQ输入法,以及讯飞语音输入法。但是这四种安卓手机输入法哪个最好用?谁的联想最完美,稳定性和兼容性最强?今天,凌少就通过四种输入法的详细对比介绍,来告诉大家,到底安卓手机输入法哪个最好用。评测手机:HTC HD2手机系统:Andriod 2.2评测对象:搜狗输入法、百度输入法、QQ输入法,以及讯飞口讯语音输入法手..._安卓手机好用的输入法

Kibana:创建你的第一个仪表板_kinaba仪表盘-程序员宅基地

文章浏览阅读2.8k次,点赞4次,收藏4次。了解从你自己的数据创建仪表板的最常用方法。本教程将从分析师查看网站日志的角度使用示例数据,但这种类型的仪表板适用于任何类型的数据。完成后,你将全面了解示例 Web 日志数据。在本次的展示中,我将使用最新的 Elastic Stack 8.7.1 来进行展示。_kinaba仪表盘

layui table表格带图片,图片显示不全问题_layui表格图片显示不全-程序员宅基地

文章浏览阅读9.8k次,点赞10次,收藏30次。这个平时没有注意过,今天有人问到,就记录一下吧layui的表格使用非常简单,layui文档中已经非常详细,下面直接上代码了1.jsp代码 <div class="demoTable"> <button class="layui-btn" data-type="publish">发布Banner</button> </..._layui表格图片显示不全

Android音视频开发 -> fdk-aac解码eld-aac为pcm_android aac音频解码-程序员宅基地

文章浏览阅读1.1k次。大体实例fdk-aac 解码初始化fdk-aac 开始解码公共变量//解码器对象实例HANDLE_AACDECODER aacDecoder;fdk-aac解码初始化int FdkAacDecode::fdkAacDecodeInit(JNIEnv *env) { //Java方法初始化 aacDecodeClass = env->FindClass("com/zkzj/aaclib/AacUtil"); aacDecodeId = env->GetM_android aac音频解码

推荐文章

热门文章

相关标签