ホームページ >バックエンド開発 >Python チュートリアル >この記事は、Python データ型の数値型を理解するのに役立ちます。

この記事は、Python データ型の数値型を理解するのに役立ちます。

Go语言进阶学习
Go语言进阶学习転載
2023-07-25 14:02:331745ブラウズ

#1. 数値型

数値型は数値を格納するために使用されます。数学的な意味で。

数値型は不変型です。いわゆる不変型とは、型の値が異なると、まったく新しいオブジェクトになることを意味します。数値 1 と 2 はそれぞれ 2 つの異なるオブジェクトを表します。変数を数値型に再代入すると、新しい数値オブジェクトが作成されます。


#Python 変数とデータ型の関係。

変数は、オブジェクトまたはコード名、名前、呼び出しなどへの単なる参照です。変数自体にはデータ型の概念がありません。 1、[2、3、4]と同様に、「笑」などのオブジェクトのみがデータ型の概念を持ちます。

例:

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


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

ここで、変更されたのは変数 a の点であり、数値オブジェクトではありません。 1 デジタルオブジェクトになる 2.初心者は混乱するかもしれませんが、それは問題ではありません、私たちはそれを理解しようと努めます。


# 2. Python は 3 つの異なる数値型 (整数、浮動小数点数、複素数)

## をサポートします。 #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 進数です。ただし、非常に大きいまたは非常に小さい浮動小数点数の場合は、一般に科学表記法で表現され、10 を e に置き換えます。1.23x10^9 は 1.23e9 または 12.3e8 になり、0.000012 は 1.2e-5 と書くことができます。

3. 複素数 ((complex))

複素数は実数部と虚数部で構成されます。または complex(a ,b) は、複素数の実数部 a と虚数部 b が両方とも浮動小数点型であることを意味します。複素数に関しては、通常、科学計算やその他の特別な必要がなければ、それに遭遇することは困難です。

数値型の変換:

数値の型を変換する必要がある場合があります。 Python には、便利な組み込みのデータ型変換関数が用意されています。

int(x): x を整数に変換します。 x が浮動小数点数の場合、小数部分は切り捨てられます。

float(x): x を浮動小数点数に変換します。

complex(x): 実数部が x、虚数部が 0 になるように、x を複素数に変換します。

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#e
#定数 ##説明
##数学定数 pi (pi、一般に π を表す)
数学定数 e、e は自然定数です(自然定数)。

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

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はGo语言进阶学习で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。