python字符串评估没有给出正确的输出

时间:2013-05-16 21:06:39

标签: python string python-2.7

我有一个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")

1 个答案:

答案 0 :(得分: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()函数中还有一个缩进错误,导致打印仅在其他条件下运行。