.endswith() 有替代方案吗?

Posted

技术标签:

【中文标题】.endswith() 有替代方案吗?【英文标题】:Is there an alternative to .endswith()? 【发布时间】:2021-12-03 05:26:54 【问题描述】:

我正在尝试编写一个 if、elif else 子句,以便根据德语单词结尾,我们可以看到它应该与 der、die 或 das 一起使用。

这是我的代码:

word = input ("Enter word: ")
if (word.endswith('er' 'ismus')):
    print ("der")
elif (word.endswith('falt' 'heit' 'keit' 'schaft' 'ung')):
    print ("die")
else (word.endswith('chen' 'lein')):
    print ("das")

我也尝试过使用带方括号的后缀,但是当我这样做时一切都变灰了,所以我可以假设它不起作用。显然,对与错对我的需要来说是不够的。还有什么我可以尝试的吗?

提前致谢!

【问题讨论】:

你应该先学习一些python基础教程。如果要在变量中分配多个字符串,则始终应使用列表 []。此外,正如真正好的答案所解释的那样,您需要一个循环来分别检查每个后缀。 【参考方案1】:

endswith 方法实际上只检查单词是否以 one 结尾,但您可以执行以下操作:

def word_ends_with_one_of(word, options):
    for option in options:
        if word.endswith(option):
            return True
    return False

然后调用它:

suffix_die = ['falt', 'heit', 'keit', 'schaft', 'ung']
suffix_der = ['er', 'ismus']
suffix_das = ['chen', 'lein']

if word_ends_with_one_of(word, suffix_die):
    print ("die")
elif word_ends_with_one_of(word, suffix_der):
    print ("der")
elif word_ends_with_one_of(word, suffix_das):
    print ("das")

顺便说一句,您的 else 子句目前存在问题,它不应该附加条件(除非它是一个错字并且您打算改为使用 elif)。


现在,即使您是一个可以用于其他目的的有用函数,您也可能需要考虑一种更侧重于应用程序的方法,因为无论如何您都会引入一个函数。我的意思是更适合您的特定需求,例如:

def definite_article_for(word):
    # Could also use word_ends_with_one_of() in here.

    if word.endswith('er'):    return 'der'
    if word.endswith('ismus'): return 'der'
    if word.endswith('falt'):  return 'die'
    :
    if word.endswith('lein'):  return 'das'
    return None

然后使用article = definite_article_for(my_word)获取你想要的文章。

【讨论】:

以上是关于.endswith() 有替代方案吗?的主要内容,如果未能解决你的问题,请参考以下文章

Windows Phone 中的 MPNS 有啥替代方案吗?

我只能使用 .require() 来要求一个模块 - 有替代方案吗?

GDI GetPixel() 有更快的替代方案吗?

mysql 查询连接和速度/替代数据库解决方案有必要吗?

有反向传播的替代方案吗?

Oracle 中的 OUTER APPLY 有啥替代方案吗?