>백엔드 개발 >파이썬 튜토리얼 >一文带你搞懂Python数据类型之数字类型

一文带你搞懂Python数据类型之数字类型

Go语言进阶学习
Go语言进阶学习앞으로
2023-07-25 14:02:331745검색

1. 숫자형

숫자형은 수학적 의미에서 숫자값을 저장하는데 사용됩니다.

숫자 유형은 변경할 수 없는 유형입니다. 소위 불변 유형은 유형의 값이 달라지면 완전히 새로운 객체가 된다는 것을 의미합니다. 숫자 1과 2는 각각 두 개의 서로 다른 개체를 나타냅니다. 변수를 숫자 유형에 다시 할당하면 새로운 숫자 개체가 생성됩니다.


Python 변수와 데이터 유형 간의 관계.

변수는 단지 객체나 코드명, 이름, 호출 등에 대한 참조일 뿐입니다. 변수 자체에는 데이터 유형의 개념이 없습니다. 1, [2, 3, 4]와 유사하게 "하하"와 같은 객체만이 데이터형의 개념을 갖는다.

예:

a = 1 # 创建数字对象1。


a = 2 # 创建数字对象2,并将2赋值给变量a,a不再指向数字对象1

여기서 변경된 것은 디지털 객체 1이 아닌 변수 a의 포인터가 디지털 객체 2입니다. 초보자들은 헷갈릴 수도 있지만, 상관없습니다. 이해하려고 노력합니다.


2. Python은 세 가지 다른 숫자 유형(정수, 부동 소수점 숫자 및 복소수)을 지원합니다.

1 정수(Int)

는 일반적으로 정수라고 하며 양수 또는 음수입니다. 정수, 소수점 없음. Python3의 정수 유형은 Long 유형(더 긴 정수 유형)으로 사용될 수 있으므로 Python3에는 Python2의 Long 유형이 없습니다.

예: 1, 100, -8080, 0 등

숫자를 표현할 때 때로는 8진수나 16진수도 사용합니다.

16진수는 0x 접두어와 0-9, a-f로 표시됩니다(예: 0xff00, 0xa5b4c3d2).

8진수는 접두사 0o와 0-7(예: 0o12)로 표시됩니다.

Python의 정수 길이는 32비트이며, 메모리 공간은 일반적으로 연속적으로 할당됩니다.

什么是空间地址?

空间地址(address space)表示任何一个计算机实体所占用的内存大小。比如外设、文件、服务器或者一个网络计算机。地址空间包括物理空间以及虚拟空间。

例 :

print(id(-2))


print(id(-1))


print(id(0))


print(id(1))


print(id(2))

一文带你搞懂Python数据类型之数字类型

从上面的空间地址看,地址之间正好差32。为什么会这样?

因为Python在初始化环境的时候就在内存里自动划分了一块空间,专门用于整数对象的存取。当然,这块空间也不是无限大小的,能保存的整数是有限的,所以你会看到id(0)和id(10000)之间的地址差别很大。

>>> id(0)
1456976928
>>> id(10000)
45818192

一文带你搞懂Python数据类型之数字类型

小整数对象池:

Python初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!

这是一个包含262个指向整数对象的指针数组,范围是-5到256。也就是说比如整数10,即使我们在程序里没有创建它,其实在Python后台已经悄悄为我们创建了。

验证一下小整数对象池的存在

在程序运行时,包括Python后台自己的运行环境中,会频繁使用这一范围内的整数,如果每需要一个,你就创建一个,那么无疑会增加很多开销。创建一个一直存在,永不销毁,随用随拿的小整数对象池,无疑是个比较实惠的做法。

print(id(-6))
print(id(-5))
print(id(-4))
print(id(255))
print(id(256))
print(id(257))

一文带你搞懂Python数据类型之数字类型

从id(-6)和id(257)的地址,我们能看出小整数对象池的范围,正好是-5到256。

除了小整数对象池,Python还有整数缓冲区的概念,也就是刚被删除的整数,不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用。

>>> a = 1000000>>> id(a)45818160>>> del a       # 删除变量a>>> b = 1000000>>> id(b)45818160

给变量a赋值了整数1000000,看了一下它的内存地址。然后我把a删了,又创建个新变量b,依然赋值为1000000,再次看下b的内存地址,和以前a存在的是一样的。

del是Python的删除关键字,可以删除变量、函数、类等等。

这一段内容,可能感觉没什么大用,但它对于理解Python的运行机制有很大帮助。

2. 부동 소수점 수(float)

부동 소수점 수는 1.23, 3.14, -9.01 등과 같은 소수입니다. 그러나 매우 크거나 매우 작은 부동 소수점 숫자의 경우 일반적으로 과학적 표기법으로 표현됩니다. 10을 e로 바꾸고, 1.23x10^9는 1.23e9 또는 12.3e8, 0.000012는 1.2e-5로 쓸 수 있습니다.

3. 복소수((복소수))

복소수는 실수부와 허수부로 구성되거나, 실수부(a,b)로 표현될 수 있습니다. a와 복소수의 허수부 b는 모두 부동소수점형입니다. 복소수에 관해서는 일반적으로 과학적인 계산이나 기타 특별한 요구 없이는 만나기가 어렵습니다.

숫자 유형 변환:

때때로 숫자 유형을 변환해야 할 때가 있습니다. Python은 편리한 내장 데이터 유형 변환 함수를 제공합니다.

int(x): x를 정수로 변환합니다. x가 부동 소수점 숫자인 경우 소수 부분이 잘립니다.

float(x): x를 부동 소수점 숫자로 변환합니다.

complex(x): x를 복소수로 변환합니다. 실수 부분은 x이고 허수 부분은 0입니다.

complex(x, y):将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。

转换过程中如果出现无法转换的对象,则会抛出异常,比如int("haha"),你说我把字符串“haha”转换为哪个整数才对?

a = 10.53b = 23print(int(a))
print(float(a))
print(complex(a))
print(complex(a, b))

一文带你搞懂Python数据类型之数字类型


三、math库(数学计算)

科学计算需要导入math这个库,它包含了绝大多数我们可能需要的科学计算函数,一般常用的函数主要包括abs()、exp()、fabs()、max()、min()等,这里就不再赘述了,感兴趣的小伙伴可以自行百度下。

下面是两个常用数学常量:

상수 설명
pi Ma 주제 상수 파이(pi, 일반적으로 π로 표현됨)
e 수학적 상수 e, e는 자연상수(natural Constant)입니다.

下面是一些应用展示,注意最后的角度调用方式:

import mathprint(math.log(2))
print(math.cos(30))
print(math.cos(60))print(math.sin(30))
print(math.sin(math.degrees(30)))
print(math.sin(math.radians(30)))
<br/>

一文带你搞懂Python数据类型之数字类型

四、总结

    本文详细的讲解了Python基础 ( 数字类型 )。介绍了有关Python 支持三种不同的数字类型。以及在实际操作中会遇到的问题,提供了解决方案。

위 내용은 一文带你搞懂Python数据类型之数字类型의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Go语言进阶学习에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:다음 기사: