尝试练习学习递归。该程序旨在遍历列表并打印出所选字母的位置。我也不明白这个错误消息的含义:(非默认参数遵循默认参数)。不太明白为什么会出现错误或如何修复它。任何帮助总是感激,谢谢。
def get_position(pos = 0,List,letter = 'o'):
if pos < 0:
pos = 0
if pos == len(List):
return None
if List[pos] is letter:
return pos
else:
return get_position(pos +1,List,letter)
print('position: ',get_position(0,'hello','o'))
问题就在这一行:
get_position(pos = 0,List,letter = 'o')
请注意,您给出了List
参数,非默认参数,位于默认参数之后pos = 0
。这是不允许的。尝试重新排列你的论点:
get_position(List, pos = 0,letter = 'o')
要理解为什么这是不允许的,请考虑一下:你会如何调用get_position
并传入second参数不传入first争论?您可以考虑一种语言可以支持这一点的一些方法,例如允许像这样的调用get_position( , myList)
,但据我所知,没有语言可以做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)