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

python函数不返回任何东西

python函数不返回任何东西

Cats萌萌 2021-06-06 06:38:17
我正在尝试解决这个问题:给定一个整数序列作为一个数组,确定是否可以通过从数组中删除不超过一个元素来获得严格递增的序列。我想出了这个代码:def almostIncreasingSequence(seq):    count_2 = 0    for element in seq:        count = 0        seq.remove(element)        for i in range(len(seq)-1):            if seq[i] < seq[i+1]:                count += 1            else:                break        if count == len(seq):            return True        else:            seq = [element]+ seq            count_2 += 1    if count_2 == len(seq):        return False问题是,当我提供输入时,该函数不执行任何操作。例如在交互式 shell 中:>>>print(almostIncreasingSequence([10,1,2,3,4,5]))>>None如果我不使用打印:>>>almostIncreasingSequence([10,1,2,3,4,5])>>>它什么都不返回,它应该为这个特殊序列返回 True 。
查看完整描述

2 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

您的代码有两个问题:

1) 在第 11 行:

if count == len(seq):

应该替换为

if count == len(seq) -1:

2)在你的 for 循环中你迭代 seq,但在循环中改变 seq。这让python感到困惑。

我在更正后测试了您的代码,它似乎工作正常。不过,您可能会考虑更有效的算法。


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

添加回答

举报

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