Python 中 int 用法详解
Python 中 int 用法详解
欢迎转载,转载请注明出处!
文章目录
- Python 中 int 用法详解
- 0. 参考资料
- 1. int 的无参数调用
- 2. int 接收数字作为参数
- 3. int 接收字符串作为参数:类型转换
- 4. int 用于进制转换
- 5. 版本特性
0. 参考资料
- Python 官方文档
1. int 的无参数调用
不带参数直接 int()
,得到的是整数 0
。
num = int()
print(type(num))
print(num)
"""
<class 'int'>
0
"""
2. int 接收数字作为参数
int
接收整数作为参数,其实没什么好说的,还是得到原来的那个整数。int
接收浮点数作为参数,会截取该浮点数的整数部分,返回截取后的整数。
print(int(2.9)) # 2
print(int(2.1)) # 2
print(int(-2.9)) # -2
print(int(-2.1)) # -2
print(int(3.0)) # 3
注意:
int
没有四舍五入的功能,它做的事情是 截断,截断,截断!
3. int 接收字符串作为参数:类型转换
众所周知,int
函数可以将一个字符串转换为整数,这也是它最常见的用法:
s = input('请输入一个整数:')
print(type(s))
"""
<class 'str'>
"""num = int(s)
print(type(num))
"""
<class 'int'>
"""
注意:确切来讲
int
是一个类,而不是函数,虽然它的首字母没有大写。
假如字符串 s
是一个浮点数形式的字符串,比如 '-3.14'
,直接用 int
进行类型转换会报 ValueError
错,如下所示:
s = '-3.14'
num = int(s)
"""
ValueError: invalid literal for int() with base 10: '-3.14'
"""
如果想要把浮点数形式的字符串转换为整数,需要先使用 float
把字符串转换为浮点数,再对该浮点数使用 int
,把浮点数截取为整数,如下所示:
s = '-3.14'
num = int(float(s))
print(f'num = {num}')
"""
num = -3
"""
4. int 用于进制转换
到目前为止介绍的都是 int
的常见用法,接下来介绍的是相对少见的用法,int
可以将 2
进制到 36
进制的字符串、字节串(bytes
)或者字节数组(bytearray
)实例转换成对应的 10
进制整数。具体的调用形式为:int(x, base=10)
,其中 x
即为字符串、字节串或字节数组的实例。
参数说明
- 参数
x
必须是合法的整数字面量integer literal
。
整数字面量前面可以有正负号,但是正负号与数字之间不能有空格。
整数字面量两端可以出现任意数量的空白,包括空格键、制表符、换行符等等。
a-z
或者A-Z
分别表示10-35
的数字。
二进制数字可以用0b
或者0B
做前缀,八进制数字可以用0o
或者0O
做前缀,十六进制数字可以用0x
或者0X
做前缀,前缀是可选的。 base
默认是10
,还可以取0
以及2
到36
,不能是1
,因为没有1
进制。
base
为0
的时候会按照代码字面量(code literal
)解析,即只能把2
、8
、10
、16
进制数字表示转换为10
进制。对于2
、8
、16
进制必须指明相应进制的前缀,否则会按照10
进制解析。
默认情况:base=10
x = '6'
num1 = int(x)
num2 = int(x, 10)
print(num1)
print(num2)
"""
6
6
"""
其他进制转为 10
进制
x = '10'
num1 = int(x, 2)
num2 = int(x, 8)
num3 = int(x, 16)
print(num1)
print(num2)
print(num3)
"""
2
8
16
"""x = 'z'
num3 = int(x, 36)
print(num3)
"""
35
"""
带正负号、空格的整数字面量
# 带正号
x = '+a0'
num = int(x, 16)
print(num)
"""
160
"""# 带负号
x = '-a0'
num = int(x, 16)
print(num)
"""
-160
"""# 两端带空白
x = ' \t +a0\r\n '
num = int(x, 16)
print(num)
"""
160
"""
base=0
时按照代码字面量直接解析
x = '10'
num = int(x, 0)
print(num)
"""
10
"""x = '0b10'
num = int(x, 0)
print(num)
"""
2
"""x = '0o10'
num = int(x, 0)
print(num)
"""
8
"""x = '0x10'
num = int(x, 0)
print(num)
"""
16
"""
5. 版本特性
3.4
版本变化
- 如果
base
参数不是int
类的实例,那么会调用它的base.__index__
方法,该方法返回一个整数供base
参数使用。 - 之前的版本调用的是
base.__int__
而不是base.__index__
。
3.6
版本变化
- 代码字面量(
code literal
)中允许使用下划线_
来对数字进行分组。
3.7
版本变化
x
现在变成了强制位置参数positional-only parameter
。
注意:也就是说
x
不能通过x=...
这种关键字参数形式来指定,以下是我在Python 3.6
当中的试验,可见3.6
版本还是可以的。然而Python 3.7
版本会报错!
# Python 3.6
x = 'a'
num = int(x=x, base=16)
print(num)
"""
10
"""
# 调过来也可以
x = 'a'
num = int(base=16, x=x)
print(num)
"""
10
"""# Python 3.7 会报错
>>> x = 'a'
>>> num = int(x=x, base=16)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'x' is an invalid keyword argument for int()
完成于 2019.5.2
Python 中 int 用法详解相关推荐
- 【 Python 中 int 用法详解】(转载)
Python 中 int 用法详解 欢迎转载,转载请注明出处! 文章目录 Python 中 int 用法详解 0. 参考资料 1. int 的无参数调用 2. int 接收数字作为参数 3. int ...
- Python中self用法详解
Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...
- Python 中 with 用法详解
浅谈 Python 的 with 语句:https://developer.ibm.com/zh/articles/os-cn-pythonwith/ python3,浅谈with的神奇魔法:http ...
- python中uuid用法详解
uuid源码注解: r"""UUID objects (universally unique identifiers) according to RFC 4122.Thi ...
- python中map用法详解_Python:map函数用法详解
一个简单的例子:将一个list中所有元素平方,常规的做法如下图所示,虽然实现了这个功能,但并没有给人一目了然的感觉.若换成map来实现,则会好很多. 常规方法 map函数 1.map函数介绍及其简单使 ...
- Python中dict用法详解
dict 称作字典(dictionary). 常见的形式 Dict = {'spam':1,'eggs':2} 单层key,value形式的字典 Dict = {'mans':{'jack':1,' ...
- Python中enumerate用法详解
enumerate()是python的内置函数.适用于python2.x和python3.x enumerate在字典上是枚举.列举的意思 enumerate参数为可遍历/可迭代的对象(如列表.字符串 ...
- Python中with用法详解
一 .with语句的原理 上下文管理协议(Context Management Protocol):包含方法 __enter__()和__exit__(),支持该协议的对象要实现这两个方法. 上下文管 ...
- python中print用法详解
print拼接输出 拼接的内容之间用逗号隔开 result = 3.1415926 print(result,"是小数 类型是",type(result)) 用{}表示变量,然后通 ...
最新文章
- 淘宝李晓拴:淘宝网PHP电子商务应用
- python语言入门pdf-Python语言及其应用 中文pdf完整版[13MB]
- 设计模式总结之Bridge Pattern(桥接模式)
- 洛谷P1678-烦恼的高考志愿
- python控制51单片机的红绿灯_基于51单片机的红绿灯实现(使用普中科技开发板)...
- 21行代码AC_ 试题H: 修改数组【解题报告】
- 关于Linux自带的python2.6.6升级到2.7.10版本步骤详解及pip、ipython的安装
- Mongo Replica set的Primary 客户端不回自动重连新的primary
- 基于bim的施工管理平台
- 如果A为假,则蕴含A-B恒为真
- Java性能优化全攻略
- java 调用 axis2_java调用WebService服务 axis2实现方式
- 如何导出魔兽3模型到3Dmax里
- vb mysql 教程_[转载]VB.net教程之数据库简单操作
- 网页qq邮箱链接html,使用QQ邮箱打开网页上的电子邮件链接
- 使用批处理实现分组多用户的创建和权限分配
- 智能手环,智能手表,智能眼镜,我们到底该怎么选呢?
- svn导出历史版本、指定版本
- 【直播升级——AWS 云之旅】
- 产品升级|1-2月合刊:多款重磅产品来袭!