Python 在我的doctest中,如何仅为完整单词匹配返回TRUE?

Python 在我的doctest中,如何仅为完整单词匹配返回TRUE?,python,doctest,Python,Doctest,如果一个物种名称以querycus开头,我有一个doctest返回TRUE,但是如果给定的物种名称包含一个拼写错误(例如querycus),它也会返回TRUE。我如何确保TRUE不仅在以该物种名称开头且仅与完整单词匹配时返回 def is_an_oak(name): """ Returns True if name is starts with 'quercus'""" return name.lower().startswith('quercus') 我尝试在单词后留下一个

如果一个物种名称以
querycus
开头,我有一个doctest返回
TRUE
,但是如果给定的物种名称包含一个拼写错误(例如
querycus
),它也会返回
TRUE
。我如何确保
TRUE
不仅在以该物种名称开头且仅与完整单词匹配时返回

def is_an_oak(name):
    """ Returns True if name is starts with 'quercus'""" 
    return name.lower().startswith('quercus')
我尝试在单词后留下一个空格,但在脚本中进一步使用该函数时忽略了结果:

def is_an_oak(name):
    """ Returns True if name is starts with 'quercus'""" 
    return name.lower().startswith('quercus ')

这应该可以做到:

def is_an_oak(name):
    """ Returns True if first word in name is 'quercus'""" 
    return name.split()[0].lower() == 'quercus'
编辑评论:
我添加的是将字符串按空格(
.split()
)拆分,然后取第一个单词(
[0]
)并对其进行比较。

这应该可以做到:

def is_an_oak(name):
    """ Returns True if first word in name is 'quercus'""" 
    return name.split()[0].lower() == 'quercus'
编辑评论: 我添加的是将字符串按空格(
.split()
)拆分,然后取第一个单词(
[0]
)并对其进行比较

import re

def is_an_oak(name):
    """ Returns Name if name is 'quercus'""" 
    return re.match("^[qQ]uercus*",name).string
为了得到正确/错误

 import re

 def is_an_oak(name):
     """ Returns True if name is 'quercus'""" 
     if re.match("^[qQ]uercus*",name):
         return True
     else:
         return False
为了得到这个词

import re

def is_an_oak(name):
    """ Returns Name if name is 'quercus'""" 
    return re.match("^[qQ]uercus*",name).string
为了得到正确/错误

 import re

 def is_an_oak(name):
     """ Returns True if name is 'quercus'""" 
     if re.match("^[qQ]uercus*",name):
         return True
     else:
         return False

您能否给出一些不适用于这两个版本的
name
示例,以及预期结果?你所说的“忽略结果”是什么意思?检测到的不是橡木的东西应该是橡木吗?你能给出一些
name
不适用于任何一个版本的例子,以及预期的结果吗?你所说的“忽略结果”是什么意思?检测到的不是橡木的东西应该是橡木吗?非常感谢你的回答,但我应该更明确一些。测试应采用任何完整的物种名称(例如,“Quercus robur”或“Francinus excelsior”,如果第一个单词仅与“Quercus”匹配,则返回TRUE。哦,我明白了,如果只有第一个完整单词需要匹配,我将在一分钟内用该大小写编辑我的答案。Hi Toni,这很完美。非常感谢您的帮助!很高兴我能帮助您:D非常感谢您的回答,但我应该是mo重新明确。测试应采用任何完整的物种名称(例如,“Quercus robur”或“Francinus excelsior”,如果第一个单词仅与“Quercus”匹配,则返回TRUE。哦,我明白了,如果第一个完整单词需要匹配,我将在一分钟内用该大小写编辑我的答案。Hi Toni,这很完美。非常感谢您的帮助!很高兴我能提供帮助:谢谢您的帮助。我选择了另一个选项但我下次遇到类似问题时会尝试使用正则表达式。祝您周末愉快!感谢您的帮助。我选择了其他选项,但下次遇到类似问题时我会尝试使用正则表达式。祝您周末愉快!