python-3.x - 该函数应该从二进制列表中返回一个字符,但我得到“invalid literal for int() with base 2”
问题描述
def binToChar(b):
a=','.join([str(i) for i in b])
a = int(a, 2)
if a < 26:
return chr(ord('A')+a)
elif a < 52:
return chr(ord('a')+a-26)
elif a < 62:
return chr(ord('0')+a -52)
else:
if a == 62 :
return "+"
if a == 63:
return "/"
print(binToChar([1,0,1,0,1,0]))
Traceback(最近一次调用最后一次):文件“C:/Users/PycharmProjects/assignment1/venv/tester.py”,第 46 行,在 print(binToChar([1,0,1,0,1,0])) 文件中“C:/Users/PycharmProjects/assignment1/venv/tester.py”,第 23 行,在 binToChar a = int(a, 2) ValueError:int() 的无效文字,基数为 2:'1,0,1,0 ,1,0'
解决方案
该消息确切地告诉您出了什么问题:“1,0,1,0,1,0”不是以 2 为底的有效数字。您需要“101010”。
为此,改变
a=','.join([str(i) for i in b])
至
a=''.join([str(i) for i in b])
推荐阅读
- vb6 - VB6 dll 不会安装在服务器 2012r2 上
- ios - 为什么在 .addObserver 中以 NSException 类型的未捕获异常终止
- bash - 使用shell脚本读取两个文件并在第三个文件中按顺序写入数据
- django - “没有要应用的迁移”消息,其中有一些要应用的迁移
- java - 枚举中的通用方法参数
- javascript - 通过php调用javascript函数的问题
- jsf - 从另一个 p:dialog 调用 p:dialog :数据为空
- javascript - 无法使用 x5c (x509) 公共证书验证 JWT
- html - 在输入类型范围的步骤和拇指上放置图标
- python - Python 性能:平方根和热循环操作策略