2013-06-24 168 views
-2

任何人都可以帮助我使用我的代码。我写了一个小程序,以便我可以学习一些功能和发生的事情。让我告诉你我的代码。Python其他语句不能按预期方式工作

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时,它应该打印“空”但没有任何反应,有人可以解释我做错了吗? 谢谢

+1

不,它的工作完全按照预期。 –

+1

这是计算机工作的主要问题 - 它只做你说它做的事,而不是你想做的事。 –

+0

我怀疑if条件下是否应该有双引号!!! – Narendra

回答

4

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

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

+0

非常感谢你 –

5

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

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

它应该是:

if len(original) > 0: 

或者干脆:

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

你检查如果字符串"original"小号长度大于0,这导致了的if/else到按预期工作。

你应该做的是

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

或preferrably更Python的方式(如果您的original将是一个空字符串,而不是一系列的空格。)

if original: 
    print original 
else: 
    print "empty" 
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" 
+0

它应该是'如果len(original)> 0'。 –

+0

谢谢ashwini !!! – Eldho