为什么在每次输出打印命令后都不打印

时间:2017-12-15 03:16:30

标签: python-2.7

def earlier_semester(w1,w2):
 if w1[1]<w2[1] or w1[0]=="Fall":
  print "True"
 else:
  print "False" 
A = ('spring',2015)
B = ('spring',2014)
C = ('Fall',2015)
D = ('Fall',2014) 

print earlier_semester(A,B) 
print earlier_semester(D,A)
print earlier_semester(A,C)

在下一行获得答案然后无,如: 假 没有 真正 无

3 个答案:

答案 0 :(得分:1)

命令print earlier_semester(A,B)使用参数earlier_semester调用函数A,B并打印该函数返回的内容。默认情况下,它返回None。因此None打印。

让我们来证明这一点。首先,让我们定义一个非常简单的函数:

>>> def somefn():
...     print "Hi"
... 

让我们运行函数:

>>> somefn2()
'Hi'

现在,让我们打印功能:

>>> print somefn()
Hi
None

问题是somefn没有明确的return语句。这意味着,默认情况下,它会返回None

让我们再次尝试使用返回语句:

>>> def somefn2():
...    return "Hi"
... 
>>> somefn2()
'Hi'
>>> print somefn2()
Hi

不再打印None

答案 1 :(得分:0)

您应该在函数内使用return而不是{% for image in post.image_set.all %} <img src="{{ image.image.url }}" /> {% endfor %} 。如下所示:

print

如果您在功能结束时没有def earlier_semester(w1,w2): if w1[1]<w2[1] or w1[0]=="Fall": return "True" else: return "False" ,则会获得return默认值!

答案 2 :(得分:0)

您无需键入print(“True”)或print(“False”)以便python打印出True / False。

只需输入:

  1. return True
  2. 返回False
  3. Python会自动打印出'True'和'False'值。 如果您使用您的方法,您没有定义条件评估时函数返回的内容。这是因为Python函数以某种方式工作,因此它必须返回“某些东西”。

    所以你做的就是你告诉它的:

    1. 打印“True”或打印“False”
    2. 然后在每次函数调用后打印出“None”。
    3. 请参阅以下修订代码:

      def earlier_semester(w1,w2):
       if w1[1]<w2[1] or w1[0]=="Fall":
          return True
       else:
          return False
      A = ('spring',2015)
      B = ('spring',2014)
      C = ('Fall',2015)
      D = ('Fall',2014) 
      
      print(earlier_semester(A,B))
      print(earlier_semester(D,A))
      print(earlier_semester(A,C))