翼度科技»论坛 编程开发 python 查看内容

Python中的int函数使用

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
描述

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

语法
  1. int(object, base)
复制代码
名称说明备注
object一个数字或字符串参数1. 数字参数可以是整数、浮点数(小数点表示和指数e表示皆可)
2. 字符串参数仅能包含在指定进制下所涵盖的字符
3. 该参数可省略
base进制数1. 该参数可省略,省略时默认为10
2. 正整型参数,表示object所对应的进制

举例

1. 浮点数转化为整型
  1. test = [12.96, -34.21, 12.0e3]
  2.  
  3. for number in test:
  4.     print(int(number))
复制代码
输出结果为:
  1. 12-3412000
复制代码
注意:无论浮点数的小数部分值是什么,使用int( )函数转化时,只会保留整数部分,而将小数部分舍去。因此在求浮点数的四舍五入之类的问题时,应该避免直接使用int函数。
2. 二进制数转化为十进制数
  1. test = ['111011011111', '0b101']
  2.  
  3. for number in test:
  4.     print(int(number, 2))
复制代码
输出结果为:
  1. 38075
复制代码
3. 八进制数转化为十进制数
  1. test = ['-1537202', '0o147']
  2.  
  3. for number in test:
  4.     print(int(number, 8))
复制代码
输出结果为:
  1. -441986103
复制代码
4. 将十六进制数转化为十进制数
  1. test = ['34A', '0x17']
  2.  
  3. for number in test:
  4.     print(int(number, 16))
复制代码
输出结果为:
  1. 84223
复制代码
5. 布尔值转换为整数
Python里最简单的数据类型是布尔型,它只有两个可选值:True和False。当转换为整数时,它们分别代表1和0:
  1. >>> int(True)
  2. 1
  3. >>> int(False)
  4. 0
复制代码
6. 将整数字符串转换为整数
可以将仅包含数字和正负号的字符串转换为整数。
  1. >>> int('99')
  2. 99
  3. >>> int('-23')
  4. -23
  5. >>> int('+12')
  6. 12
复制代码
注意事项

1. 所有参数都省略时,返回整数0
  1. test = int()
  2. print(test, type(test))
复制代码
输出结果为:
  1. 0 <class 'int'>
复制代码
2. 试图将一个浮点数字符串转化为十进制整数时,会报错:
  1. test = '23.1314'
  2. print(int(test))
复制代码
输出结果为:
  1. 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.
正确的使用方法是,现将浮点数字符串转化为浮点数类型,再将浮点数类型转化为整数。
  1. test = '23.1314' 
  2. print(int(float(test)))
复制代码
返回23.
注意:int()函数可以接受浮点数或由数字组成的字符串,但无法接受包含小数点或指数的字符串。
3.  base参数错误
Python会自动计算base参数的使用范围。若超出范围会报错:
  1. test = '110' 
  2. print(int(test, -2))
复制代码
输出结果为:
  1. 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报错
例如,在八进制数字字符中引入字符‘A’,或者十六进制字符中引入字符‘H’
  1. test = '110S' 
  2. print(int(test, 16))
复制代码
输出结果为:
  1. 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加入数字字符串中对结果没有影响,且可以省略
  1. test_0b = ['0b1011', '1011']
  2. test_0o = ['0o735', '735']
  3. test_0x = ['0xFA', 'FA']
  4.  
  5. for number in test_0b:
  6.     print(int(number, 2))
  7.  
  8. for number in test_0o:
  9.     print(int(number, 8))
  10.  
  11. for number in test_0x:
  12.     print(int(number, 16))
复制代码
输出结果为:
  1. 1111477477250250
复制代码
6. 将一个十进制数转化为十进制数,没有任何报错也不会有任何意义
  1. >>> int(5)
  2. 5
复制代码
也可以将一个十进制整数字符串转化为十进制(类型转化)
  1. >>> int('23')
  2. 23
复制代码
7. 自定义进制转化为十进制
int函数拥有强大的自定义进制转化为十进制功能。例如,将17进制数字字符转化为十进制数字:
  1. test_17 = 'GG'
  2. print(int(test_17, 17))
复制代码
输出结果为:
  1. 288
复制代码
8. 合法的数字字符字母不区分大小写
例如在十六进制中,A和a都可以转化成十进制数,且转化结果相同。
  1. >>> int('a', 16)
  2. 10
  3. >>> int('A', 16)
  4. 10
复制代码
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/article/266585.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具