python中 我的int函数 我转换8进制16进制都没问题,转换二进制就不行 为什么?

2020-08-28 教育 173阅读
int类是将指定进制下的数字转换为十进制数字
你在python命令下输入help(int),会出现下面这段话
class int(object)
| int(x=0) -> int or long
| int(x, base=10) -> int or long
|
| Convert a number or string to an integer, or return 0 if no arguments
| are given. If x is floating point, the conversion truncates towards zero.
| If x is outside the integer range, the function returns a long instead.
|
| If x is not a number or if base is given, then x must be a string or
| Unicode object representing an integer literal in the given base. The
| literal can be preceded by '+' or '-' and be surrounded by whitespace.
| The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to
| interpret the base from the string as an integer literal.
你碰到的问题在可以引用上面这段英文来解释
If x is not a number or if base is given, then x must be a string or
Unicode object representing an integer literal in the given base.
翻译过来是如果参数不是数字类型,或者base参数给出了,那么x必须是基于指定进制(默认是十进制)下的数字序列的字符串,所以下面举得例子有的成功有的报错:
int('123')#可以成功,执行,123十进制数字内
int('A123')#报错,因为A不在十进制数内
int('A123',16)#可以成功,因为A123,都是十六进制内的基本数字
int('010101',2)#可以成功,因为0和1都是二进制的基本数字。
楼上的也说了,组成二进制的数字是只有0和1的,你的输入中可是包含了非二进制的数字呢
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com