Python 函数定义:如何让字符串说出整数是真还是假?

Python 函数定义:如何让字符串说出整数是真还是假?,python,function,definition,Python,Function,Definition,实现函数测试_number,将数字和字符串作为输入: (one of 'even', 'odd', 'positive', or 'negative') 如果数字具有字符串所指示的属性,则函数返回True;如果没有,则返回False 它适用于偶数/奇数部分,所以我猜它给出了错误的正/负结果,因为我在函数前面放了“else:return'False'” 首先,什么是“不主张” 它是一个assert语句,其表达式以not逻辑否定运算符开头 其次,为什么我的代码会产生错误的结果 到达的第一个else

实现函数测试_number,将数字和字符串作为输入:

(one of 'even', 'odd', 'positive', or 'negative')
如果数字具有字符串所指示的属性,则函数返回
True
;如果没有,则返回
False

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

首先,什么是“不主张”

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

其次,为什么我的代码会产生错误的结果


到达的第一个
else
返回False。删除所有
else
子句,并在末尾返回
False
,因为如果没有其他值为true,则这将是默认值。

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

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')
def测试编号(n,s): 条件={'even':(n%2==0), “奇数”:(n%2==1), “正”:(n>=0),
“否定”:(首先,什么是“断言不”?我打赌这在你的教科书的前一章中得到了回答…返回布尔
True
False
(无引号)因此,您可以在
assert
语句中去掉
==“True”
。此外,您还需要使用
assert not
,这样您就可以使用例如
test_number(100,'odd')
@ekhumaro感谢!这正是我想知道的(assert not语句)因此,我尝试将else子句放在末尾(这很有效),但当我放置assert not语句时,会弹出一个错误。如果我单独插入assert语句,代码仍然有效。如何使代码与assert not语句一起工作?不要放置
else
。只需返回即可。