.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 有啥替代方案吗?