首页 > 编程语言 >Python内置函数int()高级用法

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

时间:2023-06-10 17:34:40浏览次数:44  
标签:内置 格子 粒米 Python int base integer


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

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


标签:内置,格子,粒米,Python,int,base,integer
From: https://blog.51cto.com/u_9653244/6454972

相关文章

  • 使用Python批量修改PPTX文件中文本框格式
    问题描述:最近正在整理Python教材的配套PPT,原来的PPT是4:3的,考虑到现在很多屏幕都是宽屏的,于是打算重新整理一下。对于正常的幻灯片,直接在“页面设置”中修改一下就可以,但是有一章PPT由于反复修改了多次,并且其中有些格式不规范,导致转换成16:9之后有些乱,如图所示:转换之后存在两个大问......
  • Python中带else子句的for循环执行过程
    这几天在厦门讲课,每天6小时,没有太多时间写新代码,宾馆不知道咋想的也不提供WiFi,只好用手机做个热点临时分享一点基础知识,300M的包月流量伤不起,热点瞬间就把仅剩的40M流量用完了,赶紧发完关闭热点。在Python中,有while和for两种循环,并且都可以带有else子句。其中while循环常用于无法提......
  • Python操作Excel文件中多WorkSheet模拟数据库内连接查询
    严格意义上来讲,是可以把Excel文件看作数据库的,C#通过OLEDB.net就可以使用SQL语句操作Excel文件中的数据。本文代码使用Python扩展库openpyxl操作Excel文件中多个WorkSheet中的数据,模拟了数据库的内连接。假设Excel文件名为data.xlsx,其中第一个WorkSheet数据如下:第二个WorkSheet数据......
  • 使用Python获取Excel文件中单元格公式的计算结果
    假设有如下Excel文件,其中第二个WorkSheet中数据如下:其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下:代码运行结果:......
  • Python内置函数any()、map()组合运用案例一则
    Python内置函数any()用来测试某个可迭代对象中是否所有对象都等价于True,map()用来把一个函数映射到一个或多个可迭代对象上。问题描述:测试一个字符串中是否包含指定列表中的某个字符串作为子串,不允许使用循环结构。参考代码:......
  • Python概率编程库PyMC应用案例二则
    这是受国防科大刘万伟老师委托发的概率编程方面的内容,这方面我不懂,为了避免解释错了,我就直接把刘老师的PPT资料截图发了。代码执行结果为:0.236对于上面这个例子(均匀分布的情况),当然可以通过计算图条形区域面积所占的比例获得精确的概率。然而,当分布函数发生变化时(比如,取正态分布),计......
  • 1000道Python题库系列分享一(17道)
    本系列题目共约1000道,下一期题库分享时发布本期题目参考答案,可以在微信公众号菜单查看系列题目。1.1 到Python官方网站下载并安装Python解释器环境。1.2 到Anaconda官方网站下载并安装最新的Anaconda3开发环境。1.3 Python程序的__name__的作用是什么?1.4 Python安装扩展库......
  • 使用Python+tkinter编写电脑桌面放大镜程序
    代码思路:首先全屏截图,然后在鼠标当前位置以小窗口进行二次截图,放大后再显示到鼠标左上角。主要技术:全屏截图,指定区域截图,绑定鼠标事件,绘制图像。建议大家照着代码敲一遍,然后运行试试。代码有一点点小瑕疵,试着发现并尝试解决,第一个发现并解决的朋友将会获得神秘礼物一份,时间不限。......
  • Python+pywin32批量转换Word文件为PDF文件
    代码功能:把当前文件夹中多个Word文件批量转换为PDF文件技术原理:代码实际上是调用了Word的“导出”功能,模拟了手工转换的操作并实现了自动化,要求已正确安装Python扩展库pywin32和Office2007以上版本。......
  • 一行Python代码计算两点间曼哈顿距离
    以下图为例,图中白色方块表示楼房,是无法穿越的,只能绕行,那么从左下角出发到达右上角,红色、蓝色、黄色三条路线的距离是相等的,也就是所谓曼哈顿距离,或者实际行走距离。对于平面上的两个点(x1,y1)和(x2,y2),曼哈顿距离的定义如下:对于空间向量(x1,x2,x3,...,xn)和(y1,y2,y3,...,yn),曼哈顿......