Python关于int整数数据类型在使用介绍
1 python 整型概述
python 整数数据类型,简称整型,在 python 中用 int
表示。
整数指的是没有小数部分的数字,在 python 中的整数包括正整数、0(数字零) 和负整数。
在 python 中整型是用来存储整数的,或者说是用来描述整数的。
在 python 中存储整数的数据类型只有一种,那就是整数数据类型(int)。
在 python 中整型的取值范围是无限的(整数具有无限的精度)。
2 不同进制表示整数
2.1 十进制(decimalism)形式
2.1.1 十进制形式概述
十进制形式,在我们生活中经常会用到的一种数字表示形式。
由 0~9 共十个数字排列组合而成。
2.1.2 十进制表示整数注意事项
使用十进制形式的整数时,不能以 0 (数字零)作为开头,除非这个数字本身就是 0(数字零)。如下代码所示:
例一,
num = 033 # 十进制整数不能以 0 开头 print(num)
运行结果:
num = 033 ^ syntaxerror: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
如果以数字 0 作为十进制整数的开头,就会报 syntaxerror
异常,错误提示信息为: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
,翻译过来:不允许在十进制整数字面值中前置零;对八进制整数使用0o
前缀。
例二,
num1 = 0 num2 = 00 num3 = 000 print(num1) print(num2) print(num3)
运行结果:
0 0 0
2.2 二进制(binary)形式
二进制形式,由 0 和 1 两个数字组成,书写时以0b
或0b
开头(注意,第一个符号是数字 0,第二个符号是小写字母 b 或大写字母 b)。如下代码所示:
# 十进制数 5 对应的二进制为 0b101 或 0b101 print(0b101) print(0b101)
运行结果:
5 5
2.3 八进制(octonary)形式
八进制形式,由 0~7 共八个数字组成,以0o
或0o
开头(注意,第一个符号是数字 0,第二个符号是小写字母 o 或大写字母 o)。如下代码所示:
# 十进制数 18 对应的八进制为 0o22 或 0o22 print(0o22) print(0o22)
运行结果:
18 18
2.4 十六进制(hexadecimal)形式
十六进制形式,由 0~9 十个数字以及 a~f(或 a~f)六个字母组成,书写时以0x
或0x
开头(注意,第一个符号是数字 0,第二个符号是小写字母 x 或大写字母 x)。如下代码所示:
# 十进制数 12 对应十六进制为 0xc 或 0xc print(0xc) print(0xc)
运行结果:
12 12
2.5 各进制对应的函数及其各进制之间转换
- 二进制:bin()
- 八进制:oct()
- 十六进制:hex()
(1)十进制转换为其他进制
print('十进制数 23 转换为二进制数为:', bin(23)) print('十进制数 23 转换为八进制数为:', oct(23)) print('十进制数 23 转换为十六进制数为:', hex(23))
运行结果:
十进制数 23 转换为二进制数为: 0b10111 十进制数 23 转换为八进制数为: 0o27 十进制数 23 转换为十六进制数为: 0x17
(2)二进制转换为其他进制
print('二进制数 0b101 转换为十进制数为:', 0b101) # print() 函数输出整数默认为十进制 print('二进制数 0b101 转换为八进制数为:', oct(0b101)) print('二进制数 0b101 转换为十六进制数为:', hex(0b101))
运行结果:
二进制数 0b101 转换为十进制数为: 5 二进制数 0b101 转换为八进制数为: 0o5 二进制数 0b101 转换为十六进制数为: 0x5
(3)八进制转换为其他进制
print('八进制数 0o22 转换为十进制数为:', 0o22) # print() 函数输出整数默认为十进制 print('八进制数 0o22 转换为二进制数为:', bin(0o22)) print('八进制数 0o22 转换为十六进制数为:', hex(0o22))
运行结果:
八进制数 0o22 转换为十进制数为: 18 八进制数 0o22 转换为二进制数为: 0b10010 八进制数 0o22 转换为十六进制数为: 0x12
(4)十六进制转换为其他进制
print('十六进制数 0xc 转换为十进制数为:', 0xc) # print() 函数输出整数默认为十进制 print('十六进制数 0xc 转换为二进制数为:', bin(0xc)) # print() 函数输出整数默认为十进制 print('十六进制数 0xc 转换为八进制数为:', oct(0xc)) # print() 函数输出整数默认为十进制
运行结果:
十六进制数 0xc 转换为十进制数为: 12 十六进制数 0xc 转换为二进制数为: 0b1100 十六进制数 0xc 转换为八进制数为: 0o14
3 数字分隔符
数字分隔符,在 python 中使用下划线_
作为数字的分隔符。
通常从右往左数每三个数字添加一个数字分隔符,而不会影响数字本身的值。
数字分隔符可以提高数字的可读性。
如下所示:
num = 45252465765747 # 我闭着眼胡乱敲出了一个数,哈哈 num1 = 45_252_465_765_747 # 给加上数字分隔符 print('num = ', num) print('num1 = ', num1)
运行结果:
num = 45252465765747 num1 = 45252465765747
4 整数相关函数 int()
class int([x][,[base=]])
- 返回值:返回一个基于数字或字符串 x 构造的整数对象,或者在未给出参数时返回 0。如下例一所示。
- x 参数: 为可选参数,可以是数字(整数或浮点数)或字符串(指的是整数字符串);如果是浮点数,它将向零舍入。如下例二所示。
-
base 参数: 也为可选参数,表示进制数(表示传入的 x 的进制数),默认为十进制。
base=
可有可无,写上是关键字参数,不写是位置参数。如下例三所示。 - 如果 x 为数字,则不能有 base 参数,作用是为传入的 x 取整。如下例四所示。
- 如果 x 为整数字符串,base 参数可有可无。
- 如果 x 不符合 base 规则(指的是传入的 x 的进制数跟 base 参数值不一致),则报错。如下例五所示。
实例如下代码所示:
例一,
obj = int() # 不传入参数,返回结果为 0 print(obj)
运行结果:
0
例二,
obj1 = int(12) obj2 = int(12.7) # 传入浮点数,将向零舍入。 obj3 = int('12') # 传入整数字符串 print(obj1) print(obj2) print(obj3)
运行结果:
12 12 12
例三,
obj4 = int('12', base=10) # 可使用关键字参数传参 base=10 obj5 = int('12', 10) # 也可使用位置参数传参 10 print(obj4) print(obj5)
运行结果:
12 12
例四,
obj6 = int(12, base=10) # 如果 x 参数为纯数字,不能有 base 参数 print(obj6)
运行结果:
typeerror: int() can't convert non-string with explicit base
例五,
obj7 = int("b", 8) # 大于等于 16 进制才会允许传入参为 a,b,c... print(obj7)
运行结果:
valueerror: invalid literal for int() with base 8: 'b'
5 python 3.x 版本与python 2.x 版本中整型的区别
python 3.x 版本中只用 int
一种数据类型存储整数。
python 2.x 版本中多了long
类型,使用 long
类型来存储较大的整数,用 int
类型存储较小的整数。
转自:https://www.cnblogs.com/manongajie/p/12738022.html