2015-10-16 46 views
0

实现函数test_number是需要输入一个号码和一个字符串。函数定义:如何让一个字符串表明整数是否为真或假?如果没有</p> <pre><code>(one of 'even', 'odd', 'positive', or 'negative') </code></pre> <p>该函数返回<code>True</code>如果数值由字符串表示的属性,<code>False</code>:

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

+1

*首先,什么是“不主张” *我敢打赌,这是你的教科书在前面的章节回答... –

+1

返回布尔值'True'或'False'(不含引号),以便您可以在'assert'语句中清除'=='True'。此外,您需要使用'assert not',以便您可以测试您的函数是否正确地使用例如'test_number(100,'odd')'。 – ekhumoro

+0

@ekhumoro谢谢!这正是我想知道的(声明不是声明) – Deer530

回答

2

首先,什么是“assert not”?

这是一个assert语句,与not逻辑否定操作员启动的表达式。

第二,为什么我的代码产生错误的结果?

达到的第一个else返回False。删除所有else条款,并在最后返回False,因为如果没有其他条件成立,那么这将是默认条件。

+0

所以我试着把else子句放在最后(哪个工作),但是当我声明不是语句时,弹出一个错误。如果我单独插入assert语句,代码可以工作。我怎样才能使我的代码与assert not语句一起工作? – Deer530

+0

不要放一个'else'。回来。 –

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') 
相关问题