实现函数test_number,它将数字和字符串作为输入:
(one of 'even', 'odd', 'positive', or 'negative')
如果数字具有字符串指示的属性,则函数返回True
,如果没有,则返回False
。
它适用于偶数/奇数部分,所以我猜它给出了正/负的错误结果,因为我在函数的前面加了“else:return'False'”。
答案 0 :(得分:2)
首先,"断言不是"?
它是一个assert
语句,其表达式以not
逻辑否定运算符开头。
其次,为什么我的代码会产生错误结果?
达到的第一个else
返回False。删除所有else
子句并在结尾处返回False
,因为如果没有其他条件,那将是默认值。
答案 1 :(得分:0)
您可以将属性字符串放在字典中:
def test_number(n, s):
conditions = {'even': (n % 2 == 0),
'odd': (n%2 == 1),
'positive': (n >=0),
'negative': (n<0)}
return conditions.get(s, None)
assert test_number(14, 'even')
assert not test_number(100, 'odd')
assert test_number(33, 'positive')
assert not test_number(100, 'negative')