int()函数

2019年10月18日 / 10次阅读 / Last Modified 2019年10月19日
内置函数

python内置的int()函数,通过各种方式得到一个int对象,即整数。

>>> int()
0
>>> int(1)
1
>>> int(123)
123
>>> int(-123)
-123

int()函数如果不带参数,返回0。

对于浮点数,int()函数对其进行整数化处理的方式是向0方向取整。( For floating point numbers, this truncates towards zero. )

>>> int(1.234)
1
>>> int(-1.234)
-1
>>> int(0.234)
0
>>> int(-0.234)
0
>>> int(0.934)
0
>>> int(-0.934)
0

0.934在被int函数处理后,也是0。-0.934,也是向0方向逼近。向0的方向,取遇到的第一个整数,这就是int函数对待浮点数的方式,很适合用来取除法的商数。(python实现浮点数四舍五入的方法

int函数的参数,还可以个字符串,将字符串所代表的数字转换成整数。

>>> int('586')
586
>>> int(b'1234')
1234

注意浮点数字符串参数不能是小数,否则会抛出ValueError。

使用int函数来将非10进制的数转换成10进制,也是非常方便非常常见的用法:

>>> int('11010010', 2)
210
>>> int('3467', 8)
1847
>>> int('1234', 16)
4660
>>> int(bin(210),2)
210
>>> int(oct(1847),8)
1847
>>> int(hex(4660),16)
4660

int函数支持0以及2-36进制向10进制的转化。什么是base-0(0进制)?python官方是这样解释的: Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that int('010', 0) is not legal, while int('010') is, as well as int('010', 8).

翻译过来就是,base-0就是按照数字字面来解释转换,因此int('010',0)是错误的,这个时候前面多余的0就不对了。

>>> int('010', 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 0: '010'
>>> int('010', 2)
2
>>> int('010', 8)
8
>>> int('010', 10)
10
>>> int('010', 16)
16

int函数返回的是一个int对象,而python内置的bin,oct,hex这3个函数,返回的都是字符串。因为人类大脑只能够很好的理解10进制!因为我们的祖先也只有10个手指头。

-- EOF --

本文链接:https://www.pynote.net/archives/1349

留言区

《int()函数》有1条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    int()函数对于浮点数的舍入模式,专业术语为ROUND DOWN,接近零的舍入模式。在丢弃某部分之前始终不增加数值(从不对舍弃部分前面的数字加1,即截短)。注意,此舍入模式始终不会增加计算值的大小。 [回复]


前一篇:
后一篇:

More

麦新杰的Python笔记

Ctrl+D 收藏本页


©Copyright 麦新杰 Since 2019 Python笔记

go to top