无效的文字int()python3.6

时间:2018-09-26 22:28:52

标签: python int

我正在尝试在python 3.6中进行如下转换

my_str= 0000063C
int_addr = int(my_str, 16)

但是我看到这个错误: ValueError:int()的无效文字,基数为16''

知道我在搞什么吗?

1 个答案:

答案 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 ,但是针对您的具体情况添加了处理方法。希望这会有所帮助!