在这个python函数定义中是否没有正确使用运算符?
我试图定义一个函数,它接受一个字符串参数,如果字符串是a、c、e或g,它会产生1,如果字符串是b、d、f或h,它会产生0在这个python函数定义中是否没有正确使用运算符?,python,Python,我试图定义一个函数,它接受一个字符串参数,如果字符串是a、c、e或g,它会产生1,如果字符串是b、d、f或h,它会产生0 def ifodd_str(col): if col == 'a' or 'c' or 'e' or 'g': return 1 elif col == 'b' or 'd' or 'f' or 'h': return 0 ifodd_str('a') 问题是如果odd_str'b'返回1。我的if语句有什么问题吗?代码的问
def ifodd_str(col):
if col == 'a' or 'c' or 'e' or 'g':
return 1
elif col == 'b' or 'd' or 'f' or 'h':
return 0
ifodd_str('a')
问题是如果odd_str'b'返回1。我的if语句有什么问题吗?代码的问题是,实际上没有将col与预期的字符进行比较。您正在检查每个字符的值,它将始终返回true 您必须比较每种情况下的平等性: 如果列='a'或列='c'或列='e'或列='g': 做点什么 您还可以使用列表来测试: 如果列在['a','c','e','g']中: 做点什么 如果列在['a','c','e','g']中: