python 2.7 string_name.find() 函数在使用变量时总是返回 -1

python 2.7 string_name.find() function always returning -1 when using variable

Python 2.7 Windows 10

因此,我开始尝试使用一个函数,在我的所有示例中,该函数在请求的单词的字符串中找到第一个迭代。

示例:

message = "Hello, World." 

print(message.find('World'))

它会 return:

7

这对我有用。但是我试图给出一个字符串,然后询问用户是否想在该字符串中找到一个词。如果答案是肯定的,程序将询问哪个单词和用户的输入被分配给变量 dokokotoba 然后我试图找到单词 dokokotoba.

除了每次找词都是returns -1,表示失败外,程序各方面运行良好。我不明白为什么。是因为我不能在那里使用变量吗?如果是这样,我不明白为什么不。

您正在寻找 字符串 'dokokotoba',而不是变量的值。 message 中不存在该字符串,不。

传入变量,而不是字符串文字:

message.find(dokokotoba)

请注意此处缺少引号。

演示:

>>> message = 'foo bar baz'
>>> message.find('bar')
4
>>> dokokotoba = 'bar'
>>> message.find(dokokotoba)
4
>>> message.find('dokokotoba')
-1

您有 .find('dokokotoba') 而不是 .find(dokokotoba)

正确的做法是

message.find(dokokotoba)

而不是

message.find('dokokotoba')

在第二种情况下,您只是在邮件中搜索字符串 "dokokotoba"