Python内置函数int()高级用法

来源:互联网 发布:金枪鱼软件下载 编辑:程序博客网 时间:2024/05/22 12:06

int()函数常用来把其他类型转换为整数,例如:

>>> int(3.2)

3
>>> int(1/3)
0

其实,int是Python内置类型之一,之所以能够当作函数来用,是因为它提供了构造方法。另外,它还提供了第二个参数支持更多功能,例如:

>>> int('1111', 8)

585

上面的问题是不是很熟悉呢?这也是我的15个读者群入群门槛问题之一,但是很多人进不来,说题不会做,不会做不要紧啊,随便在任何Python开发环境中执行一下就可以了,如果这还不会的话,你很可能是个假读者,或者还不了解Python,没入门呢。

int()函数可以把实数类型转换为整数,并且是向下取整,也就是在数轴上向左取整,简单粗暴,有代码为证:

>>> int(3.6)
3
>>> int(3.4)
3

另外,int()还可以把字符串按照指定的进制转换为整数,如果不指定进制的话默认按十进制为准,除非第一个参数字符串隐含了进制并且指定第二个参数为0,例如:

>>> int('3333')
3333
>>> int('3333', 0)
3333
>>> int('0o333', 0)
219

>>> int('0x3333', 0)
13107

那么int()函数的第二个参数除了0还有啥?让Python内置函数help()来告诉我们(学Python必备技能,节选):

>>> help(int)
Help on class int in module builtins:

class int(object)
 |  int(x=0) -> integer
 |  int(x, base=10) -> integer
 | 
 |  Convert a number or string to an integer, or return 0 if no arguments
 |  are given.  If x is a number, return x.__int__().  For floating point
 |  numbers, this truncates towards zero.
 | 
 |  If x is not a number or if base is given, then x must be a string,
 |  bytes, or bytearray instance representing an integer literal in the
 |  given base.  The literal can be preceded by '+' or '-' and be surrounded
 |  by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.
 |  Base 0 means to interpret the base from the string as an integer literal.

也就是说,int()函数的第二个参数可以是0或者2-36之间的数字(如果第一个参数字符串隐含了进制的话,要统一起来),例如:

>>> int('1111', 2)
15
>>> int('1111', 3)
40
>>> int('1111', 8)
585
>>> int('1111', 27)
20440

这样的东西有啥用呢?让我们来讲一个故事:阿凡提与国王比赛下棋,国王说要是自己输了的话阿凡提想要什么他都可以拿得出来。阿凡提说那就要点米吧,棋盘一共64个小格子,在第一个格子里放1粒米,第二个格子里放2粒米,第三个格子里放4粒米,第四个格子里放8粒米,以此类推,后面每个格子里的米都是前一个格子里的2倍,一直把64个格子都放满。需要多少粒米呢?当然,这个问题用列表推导式或者生成器表达式很容易计算。但是,用int()函数计算或许是最快的。

>>> int('1'*64, 2)
18446744073709551615

顺便说句题外话,这到底需要多少米呢?把“粒”换算成“吨”或者“亿吨”,你会吗?




----------相关阅读----------

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享一:基础知识(106页)


学习Python的利器:内置函数dir()和help()

详解Python序列解包

详解Python列表推导式

Python泛型函数与单分发器

Python中的偏函数和函数柯里化

Python列表与数字的四则运算

详解Python切片技术

详解Python中的浅复制与深复制

Python运算符含义汇总

Python内置函数使用说明

Python模拟决赛现场最终得分计算过程

Python使用模块中对象的几种方法

Python计算信息熵

Python中定义只能实例化一个对象的类

Python从序列中选择k个不重复元素

时间都去哪儿了之Python程序测试与优化

Python函数嵌套定义的洪荒之力

Python内置函数eval()用法及其安全问题

Python自定义类支持with关键字

Python里的++和--不是运算符

Python代码优化之in关键字

Python提取任意长度整数的每位数字

Python常用运算符含义与用法演示

Python序列循环移位的3种方法

Python版24点游戏

Python版本的报数游戏

回调函数原理与Python实现

Python标准库shutil中rmtree()使用回调函数

封装Python列表实现多下标访问

Python打印指定日期日历

Python_今天是今年第几天

使用Python列表实现向量运算


董付国老师6本Python系列教材被北大、复旦等近百所高校选作教材

全国计算机等级考试二级Python考试大纲预测和分析

大家都在学Python,你和别人的差距在哪?

大学生们颤抖吧,中学生已经开始学Python了!

祝所有程序员1024节日快乐

学会提问,你就成功了一大半!

盘点那些让人上火的提问方式(论如何让交流更高效)




----------喜大普奔----------

1、继《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》、《Python程序设计开发宝典》之后,董付国老师新作《中学生可以这样学Python》已于2017年10月正式出版,已在各大书城全面上架。大学生们颤抖吧,中学生已经开始学Python了!


2、董付国老师6本Python系列图书阅读指南


3、董老师免费视频地址: http://pan.baidu.com/s/1c14WYn2 密码: 9xwr




--------近期Python培训班安排------

1、2017年12月21日-25日 (21日报到,报名已结束)  厦 门:Python编程及应用--数据分析与科学计算可视化培训班


2、2018年1月12日至14日(11日报到) 合肥:全国Python科研应用专题实操培训班


3、2018年1月19日---1月21日(18日报到) 烟台:2018年全国中高等院校教师 “Python编程及应用”培训班通知


4、2018年1月28日—2月2日(28日全天报到)  厦门:“Python编程及大数据应用”课程教师(厦门)寒假研修班