我已经编写了一个基本函数,它接受作为参数传递的任何两个单词字符串,检查两个单词的索引是否匹配,并返回True,否则返回False
def alliteration_check(str):
sp1, sp2 = str.split()
if sp1[0].upper() == sp2[0].upper():
return True
else:
return False
我想知道是否可以将str的参数更改为接收**kwargs?我最近才了解这个概念,所以我试图理解如何将它付诸实践
本质上,我预期的函数输出是,用户可以将尽可能多的单词作为参数放置,并且只有当每个字符串的所有第一个索引匹配时,它才会返回True。我只是不知道如何编写函数,或者它是否可能
提前谢谢
不要命名变量(包括参数)
str
,因为它将隐藏内置的str
函数/类型!您可以使用str
作为类型注释,但它应该位于参数名称之后,例如foo: str
**kwargs
的思想是让函数能够接受任意一组关键字参数(而不是位置参数)。在函数的实现中,参数以dict
的形式提供您需要使用关键字参数调用此函数,如下所示:
如果希望用户能够使用任意数量的位置参数而不是关键字参数调用函数,请使用
*args
:您还可以将这两种方法结合使用(即,使用一个同时使用
*args
和**kwargs
的函数),以便能够以以下任一语法处理参数:在您的案例中,可能更适合使用*args(一个非关键字、可变长度的参数列表),因为您希望检查可变的字数。然后你可以像列表一样迭代
在您的情况下,您只需要检查每个单词的第一个字母是否不区分大小写。我将构建一个集合并检查它是否只包含一个元素:
您可以这样使用它:
输出:
相关问题 更多 >
编程相关推荐