2017-10-05 55 views
0

我有這個程序:如何得到單詞中的字母數字?

word = input('enter word:') 
letter = input('enter letter to find:') 

y = word.find(letter) 
print(y) 

而且只打印0:

enter word:pythop 
enter letter to find:p 
0 
>>> 

所以我怎樣才能既信「P」,因爲它只能識別它的一個的位置?謝謝

+0

你已經明白了。 'y'是索引。 find()函數找到第一個匹配項。 – Alperen

回答

1

你確實需要一個循環。如果你只需要檢查單個字母(而不是子字符串),可以列舉單詞的字符:

word = input('enter word:') 
letter = input('enter letter to find:') 

ys = [i for i, l in enumerate(word) if l == letter] 
print(ys) 
2

你明白了!字符串位置0是字符串中的第一個位置。

>>> 'pythop'.find('p') 
0 
>>> 'pythop'.find('y') 
1 
>>> 
+0

是的......但那裏有兩個p,它只識別一個......所以我怎麼能得到它? –

1

更新我的答案,由於錯字:

我會做這樣的事情:

word = input('enter word:') 
letter = input('enter letter to find:') 

y = [i for i in range(len(word)) if word.startswith(letter, i)] 
print(y) 

希望這有助於

+0

是啊..它幫助..謝謝 –

0

您可以用找到的開始和結束位置。這裏的文檔字符串:

find(...) 
    S.find(sub [,start [,end]]) -> int 

    Return the lowest index in S where substring sub is found, 
    such that sub is contained within S[start:end]. Optional 
    arguments start and end are interpreted as in slice notation. 

    Return -1 on failure. 
相關問題