Python中的int函数使用

作者:TCatTime 时间:2023-05-13 06:11:59 

描述

int函数可以将一个指定进制的数字型字符串或者十进制数字转化为整形。

语法

int(object, base)
名称说明备注
object一个数字或字符串参数

1. 数字参数可以是整数、浮点数(小数点表示和指数e表示皆可)

2. 字符串参数仅能包含在指定进制下所涵盖的字符

3. 该参数可省略

base进制数

1. 该参数可省略,省略时默认为10

2. 正整型参数,表示object所对应的进制

举例

1. 浮点数转化为整型

test = [12.96, -34.21, 12.0e3]
 
for number in test:
    print(int(number))

输出结果为:

12
-34
12000

注意:无论浮点数的小数部分值是什么,使用int( )函数转化时,只会保留整数部分,而将小数部分舍去。因此在求浮点数的四舍五入之类的问题时,应该避免直接使用int函数。

2. 二进制数转化为十进制数

test = ['111011011111', '0b101']
 
for number in test:
    print(int(number, 2))

输出结果为:

3807
5

3. 八进制数转化为十进制数

test = ['-1537202', '0o147']
 
for number in test:
    print(int(number, 8))

输出结果为:

-441986
103

4. 将十六进制数转化为十进制数

test = ['34A', '0x17']
 
for number in test:
    print(int(number, 16))

输出结果为:

842
23

5. 布尔值转换为整数

Python里最简单的数据类型是布尔型,它只有两个可选值:True和False。当转换为整数时,它们分别代表1和0:

>>> int(True)
1
>>> int(False)
0

6. 将整数字符串转换为整数

可以将仅包含数字和正负号的字符串转换为整数。

>>> int('99')
99
>>> int('-23')
-23
>>> int('+12')
12

注意事项

1. 所有参数都省略时,返回整数0

test = int()
print(test, type(test))

输出结果为:

0 <class 'int'>

2. 试图将一个浮点数字符串转化为十进制整数时,会报错:

test = '23.1314'
print(int(test))

输出结果为:

Traceback (most recent call last):
  File "/Users/Test2.py", line 3, in <module>
    print(int(test))
ValueError: invalid literal for int() with base 10: '23.1314'

返回一个值报错:对于函数int,使用了无效的文字转化成十进制:23.1314.

正确的使用方法是,现将浮点数字符串转化为浮点数类型,再将浮点数类型转化为整数。

test = '23.1314' 
print(int(float(test)))

返回23.

注意:int()函数可以接受浮点数或由数字组成的字符串,但无法接受包含小数点或指数的字符串。

3.  base参数错误

Python会自动计算base参数的使用范围。若超出范围会报错:

test = '110' 
print(int(test, -2))

输出结果为:

Traceback (most recent call last):
  File "/Users/Test2.py", line 3, in <module>
    print(int(test, -2))
ValueError: int() base must be >= 2 and <= 36, or 0

根据object参数值,Python自动计算出base的合适区间。

4. 当object参数中存在非法字符时,Python报错

例如,在八进制数字字符中引入字符&lsquo;A&rsquo;,或者十六进制字符中引入字符&lsquo;H&rsquo;

test = '110S' 
print(int(test, 16))

输出结果为:

Traceback (most recent call last):
  File "/Users/Test2.py", line 3, in <module>
    print(int(test, 16))
ValueError: invalid literal for int() with base 16: '110S'

5.  二进制符号0b、八进制符号0o、十六进制符号0x加入数字字符串中对结果没有影响,且可以省略

test_0b = ['0b1011', '1011']
test_0o = ['0o735', '735']
test_0x = ['0xFA', 'FA']
 
for number in test_0b:
    print(int(number, 2))
 
for number in test_0o:
    print(int(number, 8))
 
for number in test_0x:
    print(int(number, 16))

输出结果为:

11
11
477
477
250
250

6. 将一个十进制数转化为十进制数,没有任何报错也不会有任何意义

>>> int(5)
5

也可以将一个十进制整数字符串转化为十进制(类型转化)

>>> int('23')
23

7. 自定义进制转化为十进制

int函数拥有强大的自定义进制转化为十进制功能。例如,将17进制数字字符转化为十进制数字:

test_17 = 'GG'
print(int(test_17, 17))

输出结果为:

288

8. 合法的数字字符字母不区分大小写

例如在十六进制中,A和a都可以转化成十进制数,且转化结果相同。

>>> int('a', 16)
10
>>> int('A', 16)
10

来源:https://blog.csdn.net/TCatTime/article/details/82826824

标签:Python,int函数
0
投稿

猜你喜欢

  • python根据字典的键来删除元素的方法

    2023-05-08 00:58:57
  • python paramiko连接ssh实现命令

    2022-03-29 02:29:22
  • Python利用operator模块实现对象的多级排序详解

    2023-09-26 20:11:09
  • numpy.std() 计算矩阵标准差的方法

    2023-06-04 19:50:34
  • 如何让12px以下的文字最佳显示

    2008-01-24 18:39:00
  • python使用sklearn实现决策树的方法示例

    2023-03-25 07:44:28
  • php基于websocket搭建简易聊天室实践

    2023-11-17 12:45:42
  • SQL实现LeetCode(180.连续的数字)

    2024-01-24 13:45:21
  • Python Web框架Tornado运行和部署

    2021-04-14 09:17:57
  • CSS雪碧:要还是不要?

    2009-11-16 13:01:00
  • 扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路

    2024-04-23 09:25:31
  • ORACLE 常用函数总结(80个)第1/2页

    2009-09-18 13:23:00
  • Go语言并发编程之互斥锁Mutex和读写锁RWMutex

    2024-04-25 15:00:32
  • python使用隐式循环快速求和的实现示例

    2022-10-09 13:04:05
  • SQL Server实现分布式数据库系统的终极目标

    2010-08-05 14:57:00
  • golang实践-第三方包为私有库的配置方案

    2023-06-25 06:05:32
  • 使用Oracle的Decode函数进行多值判断

    2024-01-28 09:12:54
  • 《色彩解答》系列之一 色彩层次

    2008-02-17 14:26:00
  • python数据处理之如何修改索引和行列

    2023-11-04 13:57:27
  • python Opencv计算图像相似度过程解析

    2022-02-02 03:56:52
  • asp之家 网络编程 m.aspxhome.com