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

时间:2015-10-16 01:57:07

标签: python function definition

实现函数test_number,它将数字和字符串作为输入:

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

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

它适用于偶数/奇数部分,所以我猜它给出了正/负的错误结果,因为我在函数的前面加了“else:return'False'”。

2 个答案:

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