int(x[,base])是如何工作的?
问题描述
以下代码的输出为:
int("12", 5)
O/P: 7
int("0", 5)
O/P: 0
int("10", 2)
O/P: 2
我无法理解这一点。Python文档中写道:"[,base]"部分是可选的,即它可能带有一个或两个参数。
第一个参数必须是引号中包含int值的字符串。
解决方案
int(string, base)
接受任意基。您可能熟悉二进制和十六进制,也可能熟悉八进制;这些只是用不同的基数表示整数的方法:
- 二进制表示以2为基数的数字(0和1)
- 八进制表示以8为基数的数字(0、1、2、3、4、5、6和7)
- 小数是日常(西方)生活中用来谈论整数的,它是以10为基数(0到9)。
- 十六进制为基数16(0到9,然后是A、B、C、D、E、F)。
每个基数确定符号中的每个"位置"可以取多少值。我们在十进制中数到9,然后添加一个位置来计算‘十’,因此10
表示1乘以10,0乘以1,因此10
表示1乘以10,0乘以1。计数超过99,然后添加第三位数,依此类推。在二进制中只有两位,所以在1
之后计数到10
,即1乘以2,0乘以1,在11
之后计数到100
。
base
参数仅为整数基数,不限于2、8、10或16。基数5表示数字用0到4表示。小数点10在基数5中为20
,例如(2乘以5)。
int(string, 5)
然后将该字符串解释为基数为5的数字,并将生成一个Python整数来反映其值:
>>> int('13', 5) # one time 5, 3 times 1 == 8
8
>>> int('123', 5) # one time 5**2 (25), 2 times 5, 3 times 1 == 38
38
如果您必须命名基数为5的数字,则可能会将其命名为Pental。
相关文章