如何在python中处理AssertError

如何在python中处理AssertError,python,split,assert,Python,Split,Assert,我有一个名为newSong的文本字符串,其中包含两个instancevariabel(title,artist),如下所示: newSong=Song(“朗姆酒和雷班”、“肖恩·金斯顿和切尔·劳埃德”) 我有一个方法叫做checkIfArtistExists(self,artist)。我的任务是使用split、for循环和if语句。我必须拆分艺术家,所以若艺术家的名字由肖恩、金斯顿、雪儿、劳埃德组成,那个么它将返回true,否则返回false 我得到资产错误: >>断言(非newSong.ch

我有一个名为newSong的文本字符串,其中包含两个instancevariabel(title,artist),如下所示:

newSong=Song(“朗姆酒和雷班”、“肖恩·金斯顿和切尔·劳埃德”)
我有一个方法叫做
checkIfArtistExists(self,artist)
。我的任务是使用split、for循环和if语句。我必须拆分艺术家,所以若艺术家的名字由肖恩、金斯顿、雪儿、劳埃德组成,那个么它将返回true,否则返回false

我得到资产错误:

>>断言(非newSong.checkIfArtistExsists(“Sadley”)#False
断言错误
我是编程新手,我的逻辑不是很好。。。有人能给我建议或小费吗

类歌曲(对象):
定义初始(self、tittel、艺术家):
#实例变量器
self.\u tittel=tittel
自我。艺术家=艺术家
def CheckIfArtistExists(自我、艺术家):
name=artist.split()
对于名称中的n:
如果n在艺术家中:
返回真值
其他:
返回错误
新闻歌曲=歌曲(“朗姆酒和雷班”、“肖恩·金斯顿和谢·劳埃德”)
断言(newSong.CheckIfArtistExists(“肖恩·金斯顿和切尔·劳埃德”))
断言(不是新歌曲。CheckIfArtistExists(““Sadley”)#False

您正在测试
artist
参数本身,而不是实例变量
\u artist
。这就是为什么
newSong.checkIfArtistExists(“Sadley”)
在应该为False时为True

一旦找到匹配项,循环就会退出。它应该等待,直到它测试了所有被拆分的部分都是子字符串

def CheckIfArtistExists(self, artist):

   names = artist.split()

   for n in names:
       if n not in self._artist:
          return False
   return True