-4

我有一个 python 函数测试来测试我的代码。'得到的字符串和预期的字符串是一样的,但是当我通过下面的方法检查它时,它给出的是X而不是OK

编辑:还包括父函数和调用

def donuts(count):
  if count <=10 :
    print 'Number of donuts:',count
  else :
    print 'Number of donuts: many'
    return 

def test(got, expected):
    if got == expected:
       prefix = ' OK '
    else:
       prefix = '  X '
       print '%s got: %s expected: %s'  % (prefix, repr(got), repr(expected))
       return

对我来说,得到和预期的地方都一样,我错过了什么吗?删除了 O/p,因为它具有误导性:函数声明如下:

test(donuts("11"), "Number of donuts: many")
4

1 回答 1

2

donuts("11")将打印"Number of donuts: many"但它返回None

test(donuts("11"), "Number of donuts: many")正在比较None"Number of donuts: many"哪些不相等。如果您想让此代码正常工作,请将您的donuts()功能更改为:

def donuts(count):
  if count <=10 :
    return 'Number of donuts: %s' % count
  else :
    return 'Number of donuts: many'

您的函数中还有一个缩进错误,test()导致打印仅在 else 条件下运行。

于 2013-05-16T23:55:52.443 回答