2024-04-20 11:49:06 发布
网友
当我在python中运行下面的表达式时
int(33, base=100)
我得到以下错误:
ValueError: int() base must be >= 2 and <= 36, or 0
我找不到关于这个限制的任何解释;another Stack Overflow question about the same error message没有提到为什么基参数被限制在这个范围内。你知道吗
int的base参数用于解析字符串,而不是将int传递给int时:
int
base
>>> int('ff', 16) 255
用a,b,c,…,z来表示10,11,12,…,35的数字是一个公认的惯例,但用什么符号来表示以37为底的数字36却没有惯例。你知道吗
这是一个实际的执行公约。你认为100进制的字符集是什么?:-)
使用数字和整个字母表已经足够常见了,因此base函数和一组连续的可接受的基值实现了迄今为止的功能。基1只是len(arg)。你知道吗
base-64编码也有一个约定;但是没有值37-63的约定,base函数将基数-64值留给一个单独的接口。你知道吗
首先:在将字符串转换为数字时,只能为int()指定基数。假设您有一个十六进制数的字符串,那么以16为基数:
int()
>>> int('2a', 16) 42
此结果与解释为不同基的同一字符串有很大不同:
>>> int('2a', 11) 32 >>> int('2a', 29) 68
只有在直观地表示值或从字符串表示形式解析整数值时,才需要整数的基。可以用许多不同的方式显示整数值,但是int对象是值,而不是直观的表示形式,并且没有基数,也不能更改基数。你知道吗
当已经支持十六进制表示法(数字0-9和字母A-F)时,逻辑扩展也支持使用字母G-Z,10位数字和26个字母使使用基数36成为可能:
>>> int('zz', 36) 1295
进一步的基础将需要使用非字母数字符号,因为没有明确的预设顺序。你知道吗
你不能有一个低于2的基数;你不能仅仅用一个数字来计数,value of ^{}不会改变。你知道吗
int
的base
参数用于解析字符串,而不是将int传递给int
时:用a,b,c,…,z来表示10,11,12,…,35的数字是一个公认的惯例,但用什么符号来表示以37为底的数字36却没有惯例。你知道吗
这是一个实际的执行公约。你认为100进制的字符集是什么?:-)
使用数字和整个字母表已经足够常见了,因此
base
函数和一组连续的可接受的基值实现了迄今为止的功能。基1只是len(arg)。你知道吗base-64编码也有一个约定;但是没有值37-63的约定,
base
函数将基数-64值留给一个单独的接口。你知道吗首先:在将字符串转换为数字时,只能为
int()
指定基数。假设您有一个十六进制数的字符串,那么以16为基数:此结果与解释为不同基的同一字符串有很大不同:
只有在直观地表示值或从字符串表示形式解析整数值时,才需要整数的基。可以用许多不同的方式显示整数值,但是
int
对象是值,而不是直观的表示形式,并且没有基数,也不能更改基数。你知道吗当已经支持十六进制表示法(数字0-9和字母A-F)时,逻辑扩展也支持使用字母G-Z,10位数字和26个字母使使用基数36成为可能:
进一步的基础将需要使用非字母数字符号,因为没有明确的预设顺序。你知道吗
你不能有一个低于2的基数;你不能仅仅用一个数字来计数,value of ^{} 不会改变。你知道吗
相关问题 更多 >
编程相关推荐