函数定义:如何让一个字符串表示整数是真还是假?

Function Definition: How to make a string say whether or not integer is true or false?

实现函数test_number,输入一个数字和一个字符串:

(one of 'even', 'odd', 'positive', or 'negative')

函数 returns True 如果数字具有字符串指示的 属性,如果没有则 False

它适用于 even/odd 部分,所以我猜它给出了 positive/negative 的错误结果,因为我在函数的前面放了 "else: return 'False'" 。

First of all, what is "assert not"?

这是一个 assert 语句,其表达式以 not 逻辑否定运算符开头。

And second of all, why is my code producing false results?

第一个 else 达到 returns False。删除所有 else 子句和末尾的 return False,因为如果没有其他内容为真,那将是默认值。

您可以将 属性 字符串放入字典中:

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')