我用C主要研究並花了很多時間來理解它的引擎蓋下實施。但我最近開始學習python。所以有很多怪癖的從C如何進行「的」和「沒有」 Python中陳述工作
這裏不同的是如何將「在」語句工作在Python?
if x in array:
#the usage of an in statement produces a boolean
for x in array:
#the usage of an in statement produces an iterable
另外,作爲一個側問題。 '不'可以放在布爾表達式的前面,類似於'!'在C中,或者它可以放在python中'in'語句的前面。這怎麼可能?
if not x == 5:
#makes sense because 'x == 5' evaluates to a boolean
if x not in array:
#the statement 'in array' is not a boolean
#shouldn't it be 'if not x in array'
這兩種可能性如何?它們的評估方式不應該一致嗎?現在,我相信這是因爲Python是一種解釋型語言,解釋者可以根據周圍的語法做不同的事情。
的解釋或鏈接到一個解釋是超級有幫助的,我一直無法找到任何解決該問題。
'在'不具有許多共同之處'在'比兩種語法使用字母'i'和'N'以相同的順序等。 –
'不在數組中x'也可以工作,但'不在'更具可讀性。 「in」和「not in」都是運營商。正如Martijn Pieters所說,「因爲...... in」是無關的,而「in」不是那裏的運營商;相反,它是'for'語法的一部分。這與Python作爲解釋型語言無關。 – Ryan
如果你已經廣泛地研究了C,你應該對編譯器和詞法分析有所瞭解嗎? 好了,兩種類型的語句是在這個意義上完全不同......他們簡直是在一個完全不同的方式編譯.. – immortal