-2

任何人都可以帮我处理我的代码。我写了一个小程序,以便我可以了解一些功能以及发生了什么。让我告诉你我的代码。

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

当 len(original) 为 0 时,它应该打印“empty”但没有任何反应,有人可以解释一下我做错了什么吗?谢谢

4

4 回答 4

5

您的if条件总是True,因为您没有传递变量,而是传递了一个字符串。"original"是字符串而不是变量original

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

它应该是 :

if len(original) > 0:

或者简单地说:

if original:            # as bool('') --> `False`
于 2013-06-24T10:18:23.130 回答
4

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

在这里,因为您要计算变量 original 的长度,所以应该写 len(original)而不是len("original").

于 2013-06-24T10:20:18.090 回答
2

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

你应该做的是

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

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

if original:
    print original
else:
    print "empty"
于 2013-06-24T10:18:31.803 回答
0

您正在检查的条件将始终是True-if len("original") > 0:

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

您可以修改您的代码,如

if len(original) > 0:  #or if original:
    print original
else:
    print "empty"
于 2013-06-24T10:29:55.693 回答