if else语句的结果有什么问题

时间:2013-06-26 10:12:40

标签: python

我有一个简单的if else语句,这给了我错误的结果。

a=36
MITTEN = 42
if a <= MITTEN:
  print("A", end=" ")
  print("B", end=" ")
else:
  print("C", end=" ")
  print("D")

这给我的结果是 A B

但正确的答案应该是 A B D

5 个答案:

答案 0 :(得分:4)

这取决于你在两种情况下都会得到什么。

如果您期望A B D当且仅当a <= MITTEN,那么您应该将print("D")放入if子句:

a=36
MITTEN = 42
if a <= MITTEN:
  print("A", end=" ")
  print("B", end=" ")
  print("D")
else:
  print("C", end=" ")

另一方面,如果您希望print("D")独立于a <= MITTEN的结果,那么您应该删除最后一行中的缩进:

a=36
MITTEN = 42
if a <= MITTEN:
  print("A", end=" ")
  print("B", end=" ")
else:
  print("C", end=" ")
print("D")

答案 1 :(得分:2)

你应该始终牢记: “Whitespace在Python源代码中很重要。” 所以不要只是从上到下阅读源代码,还要关注缩进。

答案 2 :(得分:1)

取消print ("D")行。在您的代码中,该行仅在条件时执行 a <= MITTEN:False

a=36
MITTEN = 42
if a <= MITTEN:
    print("A", end=" ")
    print("B", end=" ")
else:
    print("C", end=" ")
print("D")

请注意,如果该条件为False,则输出为C D,如果True则为A B D

使用四个空格进行缩进。

答案 3 :(得分:1)

取消最后一行

a=36
MITTEN = 42
if a <= MITTEN:
  print("A", end=" ")
  print("B", end=" ")
else:
  print("C", end=" ")
print("D")

答案 4 :(得分:1)

我假设这是一个功课,如果你只是粘贴答案而不是代码,那么确定你的答案是否正确的程序对于{是否添加了尾随空格敏感{1}}打印功能的参数,或者我刚刚看到其他答案进来(对你正在做的课程更熟悉!),可能是缩进;如果'D'应该最后打印,则不能在第一个条件中。