ValueError:字符串以10为基数的int()的文本无效

2024-06-02 12:16:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图比较python中if-else语句中的两个字符串。我的代码如下:

#_file = 'tests_1012_IEO_ANG_HI.pk'
_prts = _file.split("_") # _prts  = ['test', '1012', 'IEO', 'ANG', 'HI.pkl']
if (_prts[3] == "HAP"):
        label = 1
elif (_prts[3] == "SAD"):
        label = 2
elif (_prts[3] == "ANG"):
        label = 3

_file变量是一个字符串,通过拆分它,我得到了它的子字符串['test','1012','IEO','ANG','HI.pkl'],而_文件='tests_1012_IEO_ANG_HI.pk'

if (_prts[3] == "HAP"):

但是,当我尝试使用上述if-else语句时,我收到以下错误:

if (_prts[3] == "HAP"): ValueError: invalid literal for int() with base 10: 'ANG'

到底发生了什么?我在调试_prts[3] == "ANG"时检查了以下代码,结果是True。为什么我会收到这个错误


Tags: 字符串代码testiftests语句hielse
2条回答

如果不知道prts中的真正内容,很难告诉您问题出在哪里

我将尝试使用str(),如下所示:

_prts = _file.split("_")
if (str(_prts[3]) == "HAP"):
        label = 1
elif (str(_prts[3]) == "SAD"):
        label = 2
elif (str(_prts[3]) == "ANG"):
        label = 3

试试if "HAP" in _prts[3]

编辑:我用你的值_file = "asdfads_afsd_fads_ANG_adfs"尝试了你的代码,它运行得很好(python 3.8.1)

相关问题 更多 >