2013-11-23 25 views
2

python中的字符串的最後位置是否在該字符串的最後一個字符之後? 如果這是真的,那麼它是否意味着如果k='asdf'然後在索引位置4有一個''?如果是這樣,爲什麼不k [4]返回''而不是out of range error。 有人建議我嘗試k [4:4]看到這種行爲,但我認爲該片返回'',因爲它沒有被給予任何東西來包含,並且不是因爲存在''每串。如果我做k [300:782],我仍然得到'',但`find('asdf','',300)'返回-1,所以這應該證實我的信念。python中字符串的最後位置是什麼?

+1

誰告訴你的? – Christian

+0

@Christian在這個問題的評論:http://stackoverflow.com/questions/20159107/find-function-in-python2-7-5 – aste123

+4

請參閱我編輯回答您的其他問題。爲了查找字符串,假設「find」的「最後位置」與「最後一個位置」是相同的事物,你是不正確的。 「find」不返回位置「in the string;它返回字符串的* slices *的開始*位置。 – BrenBarn

回答

4

這是不正確的。在k='asdf'中的最後一個位置是k[3],其中'f'。

你也是正確的,試圖檢查不包含任何切片時(k[4:4]k[300:2345]k[6:5])巨蟒會給你一個空的結果。

''是一個空字符串;它不返回一個引號。

@BrenBarn是絕對正確find

+0

我知道''''是空字符串。我只是認爲最好用這些符號組合來表示它。是的,BrenBarn這次是正確的。但之前他一直說**'最後一個位置是在字符串的最後一個字符之後'**即使是一個新到python的人,我也可以告訴他他錯了,所以我問了這個問題,然後他糾正了他的答案。 – aste123

+0

現在只有當某人能夠解釋** find()返回字符串**切片的開始位置時纔有意義。爲什麼python甚至會遇到創建分片並在已經超出最後索引位置時檢查它的麻煩。 – aste123

0

凱爾確實回答了偉大的工作。我只補充說你可以引用索引爲-1的字符串的最後一個位置。所以在你的例子中k [-1]產生'f',就像k [3]產生'f'一樣。

相關問題