这是我的代码:
a = ('the', 'cat', 'sat', 'on', 'a', 'mat')
for i,j in enumerate(a):
data = (i, j)
print (data)
word = input('Type a word out of this sentence - \'The cat sat on a mat\' : ')
word = word.lower()
print(word.find(data))
这是我的代码,基本上,当用户输入句子中的单词时,我想从data
找到索引位置和单词,然后打印它。
请你帮我简单地做这件事,因为我只是一个初学者。谢谢:)(对不起,如果我没有解释得很好)
答案 0 :(得分:2)
只需使用a.index(word)
代替word.find(data)
。您只需在word
中找到a
,并且您不需要for循环,因为它所做的就是不断重新分配data
。
您的最终结果将如下所示:
a = ('the', 'cat', 'sat', 'on', 'a', 'mat')
word = input('Type a word out of this sentence - \'The cat sat on a mat\' : ').lower()
print(a.index(word))
答案 1 :(得分:2)
由于您希望a
的索引发生word
,因此您需要将word.find(data)
更改为a.index(word))
。
如果单词不在ValueError
中,这将会引发a
,您可以抓住它:
try:
print(a.index(word))
except ValueError:
print('word not found')
答案 2 :(得分:2)
你正在尝试错误的方向。
如果您有一个字符串并调用find
,则在该字符串中搜索另一个字符串:
>>> 'Hello World'.find('World')
6
你想要的是另一种方式,在元组中找到一个字符串。为此用途
元组的index
方法:
>>> ('a', 'b').index('a')
0
如果元素不在元组内部,则会引发ValueError
。你可以这样做:
words = ('the', 'cat', 'sat', 'on', 'a', 'mat')
word = input('Type a word')
try:
print(words.index(word.lower()))
except ValueError:
print('Word not in words')
答案 3 :(得分:1)
首先,您不需要循环,因为它所做的只是将元组的最后一个元素分配给数据。
所以,你需要做这样的事情:
a = ('the', 'cat', 'sat', 'on', 'a', 'mat') # You can call it data
word = input('Type a word out of this sentence - \'The cat sat on a mat\' : ')
word = word.lower()
try:
print(a.index(data))
except ValueError:
print('word not found')