python整数类型进制表示_Python的基本数值类型

本文详细介绍了Python3中的四种数值类型:int(整型)、float(浮点型)、bool(逻辑型)和complex(复数)。内容包括各类型的表示方法、转换函数、运算规则以及科学计算中的应用。同时,文章提到了Python3中整型不再区分长整型,并强调了bool型在Python3中作为独立的关键字存在。此外,还探讨了复数的创建、属性和运算。最后,文章简要总结了Python中的四舍五入和混合运算规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

webchat.jpg

Python 3支持的数值类型

Python 3支持4种数字数据类型,分别是:int、 float、 bool、 complex(复数)。值得注意的是,网上有一些博客所写的long长整型是存在于Python 2中的,Python 3只支持一种整型——int。

1

2

3

4

5

6

7

>>> # 普通赋值

>>> i = 1

>>> # 平行赋值

>>> f, b, c = 2.718, True, 1+2j

>>> type(i), type(f), type(b), type(c)

(int, float, bool, complex)

int整型数

Python表示整数,既可以使用十进制表示,又可以使用二进制、八进制、十六进制。需要注意的是,不论代码中表现的是哪种进制的数字,在计算机底层都是二进制实现。

1

2

3

4

5

6

7

8

9

10

11

12

>>> # 十进制,以“非0数字”开头

>>> 10

10

>>> # 二进制,以“0b”或“0B”开头

>>> 0b10, 0B10

(2, 2)

>>> # 八进制,以“0o”或“0O”开头

>>> 0o10, 0O10

(8, 8)

>>> # 十六进制,以“0x”或“0X”开头

>>> 0x10, 0X10

(16, 16)

不同的进制间的数字常常需要转换,Python内置了一些函数专门用于进制间转换。

其他进制转十进制

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

>>> # int(x, base)函数,x 输入的数字字符串,base 指定数字字符串是几进制,返回值是一个整数

>>> int('0b10', base=2)# 二进制转为十进制

2

>>> int('0o10', base=8)# 八进制转为十进制

8

>>> int('0x10', base=16)# 十六进制转为十进制

16

>>> # x可以是满足base进制的字符串,不一定需要严格的格式。其中base默认值为10,取值范围是0和2~36

>>> int('10', base=2)

2

>>> int('10', base=3)

3

>>> int('10', base=4)

4

>>> int('10', base=5)

5

>>> int('10', base=10)

10

>>> int('10', base=0)# base=0表示将字符串解释为以10为基底的字符串

10

....

>>> int('10', base=36)

36

其他进制转二进制

1

2

3

4

5

6

7

>>> # bin(number)函数,number参数是待转换的整型数字,可以是Python中的任何形式的整数,返回值是一个字符串

>>> bin(0o10)# 八进制转二进制

'0b1000'

>>> bin(10)# 十进制转二进制

'0b1010'

>>> bin(0x10)# 十六进制转二进制

'0b10000'

其他进制转八进制

1

2

3

4

5

6

7

>>> # oct(number)函数,number参数是待转整型数字,可以是Python中任何形式的整数,返回值是一个字符串

>>> oct(0b10)# 二进制转八进制

'0o2'

>>> oct(10)# 十进制转八进制

'0o12'

>>> oct(0x10)# 十六进制转八进制

'0o20'

其他进制转十六进制

1

2

3

4

5

6

7

>>> # hex(number)函数,number参数是待转整数,可以是Python中任何形式的整数,返回值是一个字符串

>>> hex(0b10)# 二进制转十六进制

'0x2'

>>> hex(0o10)# 八进制转十六进制

'0x8'

>>> hex(10)# 十进制转十六进制

'0xa'

float浮点数

Python中浮点数的表示可以分为两种,一种是数学表示法,一种是科学计数法。其中,科学计算法表示一个确定的浮点数时,不止有一种写法,只要满足结果相等即可。

1

2

3

4

5

6

7

8

9

10

11

12

13

>>> # 数学表示法

>>> 1.0

1.0

>>> 1.# 省略小数点后的0也不会报错(但不建议这样做)

1.0

>>> # 科学计数法,e或E

>>> 3.14e2

314.0

>>> 314e0

314.0

>>> 3140E-1

314.0

bool逻辑值

布尔型数值在Python 2中是没有的,Python 2中是以1和0来表示这True和False的,True和False是在Python 3才被定义为关键字的。

1

2

3

4

5

6

7

8

9

10

11

12

>>> # bool值的整数

>>> b1, b2 = True, False

>>> int(b1), int(b2)

(1, 0)

>>> # 非0的数,其真值都为True

>>> bool(1), bool(-1), bool(0)

(True, True, False)

>>> bool(1.2), bool(-1.2), bool(0.0)

(True, True, False)

>>> bool(1+1j), bool(-1-1j), bool(0+0j)

(True, True, False)

有关bool数值的一些计算如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

>>> # 三种运算符号and、or、not

>>> 1 and 1, 1 and 0, 0 and 0

(1, 0, 0)

>>> 1 or 1, 1 or 0, 0 or 0

(1, 1, 0)

>>> not 1, not 0

(False, True)

>>> # and、or运算会发生“短路计算”,会总是返回对象中使运算过程结束的那个对象,而不是返回运算结果

>>> 10 and {}# 当and第一个对象“非0非空”时,需要继续计算才能结束运算过程

{}

>>> 10 and 'end'

'end'

>>> [] and 10# 当and第一对象“为0为空”时,发生短路,计算过程结束

[]

>>> [] and 'end'

[]

>>> None and 10, 10 and None

# 输出None,不显示

>>> 10 or []# 当or第一个对象为“非0非空”时,发生短路,计算过程结束

10

>>> 10 or 'end'

10

>>> 10 or None

10

>>> [] or 'end'# 当and第一对象“为0为空”时,需要继续计算才能结束运算过程

'end'

>>> [] or {}

{}

>>> [] or None

# 输出None,不显示

complex复数

complex复数表达式与数学中所说的复数类似,由一个实部与一个虚部共同组成,形如:complex(real, imag)的形式。

数学中关于复数当中虚数单位 i 的定义是这样的: i * i = -1 ,等同于 -1的平方根为i 。在Python中,虚数单位使用 j 来表示。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

>>> # 满足复数的数学定义

>>> import cmath# 需要导入cmath,而不是math

>>> cmath.sqrt(-1)# 求-1的平方根

1j

>>> # 创建一个complex对象的两种方法

>>> 1 + 1j

(1+1j)

>>> complex(1.5, 2.7)

(1.5+2.7j)

>>> j# 纯虚数的常数项为1时,不可以省略!

Traceback (most recent call last):

File "", line 1, in

1+j

NameError: name 'j' is not defined

>>> # 获取complex对象的实部与虚部(real与imag参数本质上都是浮点数)

>>> c = 1+2j

>>> c.real

1.0

>>> c.imag

2.0

>>> # 获取complex对象的共轭复数

>>> c.conjugate()

(1-2j)

有关complex对象的一些数值计算如下

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

>>> # 常见的四则运算

>>> c, c1 = 3+4j, 6+8j

>>> c + c1, c - c1

((9+12j), (-3-4j))

>>> c * c1, c / c1

((-14+48j), (0.5+0j))

>>> # 复数的正弦、余弦、平方根

>>> import cmath

>>> cmath.sin(c)# 正弦

(3.853738037919377-27.016813258003936j)

>>> cmath.cos(c)# 余弦

(-27.034945603074224-3.8511533348117775j)

>>> cmath.exp(c)# 平方根

(-13.128783081462158-15.200784463067954j)

综合计算

Python中基本的混合运算遇到最多的是整型数与浮点数之间的混合计算。虽然算数计算基本逻辑与C语言类似,但Python中还是有一些Pythonic写法的。

自动转换类型

1

2

3

4

5

6

7

8

9

10

11

12

13

>>> # 混合计算中,会将int型数转换成浮点数, 再去与浮点数进行计算

>>> i1, i2 = 1, 1.0

>>> type(i1), type(i2)

(int, float)

>>> i = i1 + i2# i的结果

>>> i, type(i)

(2.0, float)

>>> type(i1)# 只是计算的时候讲i1类型自动转换了,i1本身没有被转换

int

>>> # 整型数与浮点数之间的减法、乘法、普通除法,与加法类似

>>> i1 - i2, i1 * i2, i1 / i2

(0.0, 1.0, 1.0)

几种运算符号

是精确除法,特点是保留小数位,对于循环小数的最后一位不四舍五入

\ 是向下取整除法(又称作“地板除”),特点是不保留小数部分,也不对小数部分四舍五入;且,在Python中保留的整数部分是趋向于更小的整数部分,而不是直接简单的舍去

% 是取余除法,特点是保留被除数被模(除数)计算后的余数值

** 是幂运算,底数和指数可以是整型数、浮点数,或算术式子

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

>>> # 精确除法

>>> 2 / 1# 结果为float

2.0

>>> 2 / 3# 最后一位不进行四舍五入

0.6666666666666666

>>> # 向下取整除

>>> 9 // 2# 不保留,也不四舍五入

4

>>> 9 // -2# 趋向于更小的整数部分,-5小于-4

-5

>>> # 取余除法

>>> 7 % 5

2

>>> 7 % -5# 注意取余的负数的情况

-3

>>> # 乘方运算

>>> 3**2

9

>>> 9**0.5# 指数为0.5,表示开平方

3.0

>>> 27**(1/3)# 相等于开三次跟

3.0

数字的四舍五入

有上面的几种除法运算可知,Python中的除法语法是不带四舍五入的。因此为了实现四舍五入的功能,Python提供了一个内置函数 round()函数 实现四舍五入功能。

1

2

3

4

5

6

7

8

9

>>> help(round)

Help on built-in function round in module builtins:

round(...)

round(number[, ndigits]) -> number

Round a number to a given precision in decimal digits (default 0 digits).

This returns an int when called with one argument, otherwise the

same type as the number. ndigits may be negative.

round() 函数参数 ndigits 为正数时,四舍五入作用于小数部分的百分位、千分位……

round() 函数参数 ndigits 为负数时,四舍五入作用于整数部分的个位、十位、百位……

round() 函数参数 ndigits 为 0 时,四舍五入只作用于小数部分的十分位

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

>>> a = 157.256

>>> round(a, 1)

157.3

>>> round(a, 2)

157.26

>>> round(a, 3)# 作用于小数点后第4位,超过了小数点最小位,保留全部

157.256

>>> round(a, -1)

160.0

>>> round(a, -2)

200.0

>>> round(a, -3)# 作用于百分位

0.0

>>> round(555, -3)

1000

>>> round(a, 0)

157.0

小结

有关Python最基础的算数计算的一些总结到此为止,作为科学计算的利器Python中的计算功能当然不止这些。更高级的一些科学计算功能需要安装第三方库实现,好比:numpy 、pandas 等。真要学习科学计算、机器学习等知识,建议使用 anaconda 安装包,因为 anaconda 集成了很多机器学习、科学计算的库省去自己一个个去安装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值