2013-06-24 179 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