为了账号安全,请及时绑定邮箱和手机立即绑定

递归并找到最大数

递归并找到最大数

慕哥9229398 2021-08-14 21:41:13
所以我试图使用递归来找到我程序中的最大数。我必须将一个文件导入另一个文件。这是我到目前为止的代码:def find_largest():    numlist = [0]    if numlist == 1:       return numlist[0]    else:       m = find_largest(numlist[0])       return m if m > numlist[0] else numlist[0]find_largest()那是调用递归的文件。这是将导入它并建立列表的主要内容。import Collins_find_largest #file name to be importeddef main():    number_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]    print('List of numbers:\n', number_list, sep ='')    print("largest Number in the list is: ", \      Collins_find_largest.find_largest(number_list))main()当我运行我的代码时,它返回说行 m=find_largest(numlist[0]) 需要 0 个位置参数,但给出了 1 个。请帮助!
查看完整描述

2 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

您的代码存在一些问题,主要是您缺少num_list参数:


def find_largest(num_list):

    if len(num_list) == 1:

        return num_list[0]

    else:

        m = find_largest(num_list[1:])

        return m if m > num_list[0] else num_list[0]



result = find_largest([1, 2, 3, 4])

print(result)

输出


4

其次,在检查列表的长度时使用len,最后您需要对列表的其余部分进行递归调用 ( num_list[1:])。


查看完整回答
反对 回复 2021-08-14
?
交互式爱情

TA贡献1712条经验 获得超3个赞

您的函数中缺少一个参数:


def find_largest(numlist=None):

    numlist = numlist or [0]

    if numlist == 1:

       return numlist[0]

    else:

       m = find_largest(numlist[0])

       return m if m > numlist[0] else numlist[0]


查看完整回答
反对 回复 2021-08-14
  • 2 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信