我试图比较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
。为什么我会收到这个错误
如果不知道prts中的真正内容,很难告诉您问题出在哪里
我将尝试使用str(),如下所示:
试试
if "HAP" in _prts[3]
编辑:我用你的值
_file = "asdfads_afsd_fads_ANG_adfs"
尝试了你的代码,它运行得很好(python 3.8.1)相关问题 更多 >
编程相关推荐