我正在尝试在python 3.6中进行如下转换
my_str= 0000063C
int_addr = int(my_str, 16)
但是我看到这个错误: ValueError:int()的无效文字,基数为16''
知道我在搞什么吗?
答案 0 :(得分:1)
请尝试:
my_str= "0000063C"
int_addr = int(my_str, 16)
print(int_addr)
当您拥有无法转换为int值的字符串时,就会遇到问题。例如,如果您运行以下命令:
my_str= "sdfsdf"
int_addr = int(my_str, 16)
print(int_addr)
您得到:
Traceback (most recent call last): File "main.py", line 2, in <module> int_addr = int(my_str, 16)
ValueError: invalid literal for int() with base 16: 'sdfsdf'
处理这种情况很重要,因为您在问题的一个注释中提到变量 my_str 需要保留任何字符串值。为了克服这个问题,您可以尝试将转换包装起来,如下所示:
try:
my_str= "sdfsdf"
int_addr = int(my_str, 16)
print(int_addr)
except ValueError:
pass
您可以决定代码如何处理ValueError异常。我只是添加了关键字 pass ,但是针对您的具体情况添加了处理方法。希望这会有所帮助!