2013-05-28 65 views
0

我的python腳本中的in函數工作很奇怪。我不知道它是否意味着像這樣,或者如果這是3.3中的錯誤。 這裏是我的腳本的一部分:Python「in」運算符不能正常工作嗎?

command = input("\ ") 
if command in ['help', 'HELP', 'Help']: 
     print (help) 

一日一次我試過了,輸入幫助或幫助工作,同時幫助不起作用。

下一次我嘗試了,幫助和幫助不起作用。

每當我嘗試它,它會隨機接受什麼,什麼不接受。有人請幫助我,如果這是一個錯誤或腳本有問題。

+5

'工作,而X不工作'。這**沒有任何意義!**。 「不起作用」是什麼意思?如果輸出不是你認爲正確的,爲什麼你沒有發佈實際輸出*和*你期望的結果?如果出現錯誤,爲什麼不發佈異常的完整回溯?如果python解釋器崩潰了,雖然你沒有提供使python崩潰的MWE嗎?這些是人們必須知道的**必不可少的**信息以幫助;否則人們可以做的只是猜測和說隨機的事情。 – Bakuriu

+0

使代碼更易於調試。並不斷嘗試不同的輸入。你一定會發現錯誤。 – IcyFlame

+0

我有同樣的問題,你的問題幫助我找到答案! 問題是我沒有正確比較字符串的情況。 – Whitecat

回答

7

變量help在哪裏定義(或者你的意思是使用內建函數)?也許問題是你的意思是print(command)

你的語法in看起來很好。但考慮這是否會很好的工作

if command.lower() == 'help': 
+0

它在腳本內的某處。我沒有把它放在這裏。 'help =「鍵入exit退出,鍵入start以啓動計時器」' 這樣的排序 – ChrRubin

+2

@ChrRubin,好的。也許你需要發佈更多的腳本 –

5

「關於在」操作是沒什麼問題,請命令後立即檢查命令的值=輸入(「」),以查看該值是你只是輸入。同樣,您可以在此發佈更多腳本或錯誤消息。

1
command = input("\ ") 
if command in ['help', 'HELP', 'Help']: 
     print (help) 

無論如何都適合我。

但我注意到,如果您在輸入幫助,幫助或幫助之前按Enter鍵,它不會被捕獲。確保你不添加任何其他字符,如空白空間或新行。或者用一個正則表達式來輸入,而不是一個完整的單詞。