簡體   English   中英

“是”不在python IDE中工作,而是在命令行中工作

[英]“is” not working in python IDE but working in command line

我無法理解為什么會發生這種情況..

看看這個python代碼:

    word = raw_input("Enter Word")
    length = len(word)

    if word[length-1:] is "e" :
         print word + "d"

如果我輸入“愛”,它的輸出必須“被愛”。 所以,當我在PyScripter IDE中編寫它時,它既不顯示錯誤也不顯示輸出。 但我在python shell中嘗試了相同的代碼,它的工作原理!

我想知道為什么會這樣。

is關鍵字僅在字符串具有完全相同的標識時才起作用,即使字符串具有相同的值,也不能保證。 您應該使用==代替的is這里比較字符串的值。

或者更好的是,使用endswith

if word.endswith("e"):
     print word + "d"

你應該使用==在這種情況下,而不是is Is對象的標識進行檢查,即id('e')必須與切片返回的字符串的id相等。 碰巧,cpython將單字母字符串(和小整數)存儲為常量,因此這通常有效。 但它不可靠,因為任何其他實現都不能使用它,然后即使"e" is "e"也不必產生​​True。 只需使用== ,它應該工作。

編輯: endswith提到的endwith在這種情況下更好。 更安全,更具可讀性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM