Python else语句不能按预期工作

时间:2013-06-24 10:16:50

标签: python python-2.7

任何人都可以帮我处理我的代码。我写了一个小程序,以便我可以学习一些函数和正在发生的事情。让我告诉你我的代码。

print "Welcome to the English to Pig Latin translator!"
original = raw_input("Word Please?")
if len("original") > 0:
    print original
else:
    print "empty"

当len(原始)为0时,它应该打印“空”但没有任何反应,有人可以解释我做错了吗? 谢谢

4 个答案:

答案 0 :(得分:5)

您的if条件始终为True,而不是传递您传递给它的变量字符串。 "original"是一个字符串,而不是变量original

if len("original") > 0:  # 8 > 0  always True

它应该是:

if len(original) > 0:

或简单地说:

if original:            # as bool('') --> `False`

答案 1 :(得分:4)

len("original")将计算字符串"original"的长度(8),因此if条件将始终为True

这里,因为你要计算变量原始的长度,你应该写 len(original)代替len("original")

答案 2 :(得分:2)

您正在检查字符串"original"的长度是否大于0,这导致if / else完全按预期工作。

你应该做的是

if len(original) > 0:
   print original
else:
   print "empty"

或者更喜欢pythonic方式(如果你的original是一个空字符串而不是一系列空格。)

if original:
    print original
else:
    print "empty"

答案 3 :(得分:0)

您要检查的条件始终为True - if len("original") > 0:

因为len("original") > 0将始终为True,因为您正在检查"original"中包含的字符串是否始终具有其长度--8而其他部分不会被执行。

您可以像

一样修改代码
if len(original) > 0:  #or if original:
    print original
else:
    print "empty"