程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了无法弄清楚什么不起作用(检查练习“即使是最后一个”)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决无法弄清楚什么不起作用(检查练习“即使是最后一个”)?

开发过程中遇到无法弄清楚什么不起作用(检查练习“即使是最后一个”)的问题如何解决?下面主要结合日常开发的经验,给出你关于无法弄清楚什么不起作用(检查练习“即使是最后一个”)的解决方法建议,希望对你解决无法弄清楚什么不起作用(检查练习“即使是最后一个”)有所启发或帮助;

给定一个整数数组。您应该找到具有偶数索引(第 0、第 2、第 4...)的整数的总和。然后将这个求和数与数组的最后一个元素相乘。不要忘记第一个元素的索引为 0。 对于空数组,结果将始终为 0(零)。 输入:整数列表。 输出:作为整数的数字。 前提条件:0 ≤ len(array) ≤ 20 all(isinstance(x,int) for x in array) all(-100

    result = 0 
    if array:
        for element in array: 
            i = array.index(element)
            if i%2 == 0:
                result += element
            else:
                pass
    else:
        return 0
        return result
    Last_digit = arraY[-1]
    final_result = result*Last_digit
    return final_result
    print(final_result)```

解决方法

首先,我建议阅读有关发布格式良好的问题的 stackexchange 指南。您需要说明您的目标是什么、您尝试过什么、抛出什么错误以及输出应该是什么样子——以及代码示例和需要的最小可重现示例。

不管怎样,我都会帮你的

您在第 11 行有一个悬空的 return

else:
    return 0
    return result

这毫无意义,因为您已经返回了 0。这显然也是一个函数的片段,不是吗?发布整个功能。但是根据说明,你可以试试这个:

import random

array = random.sample(range(-100,100),20)

def etl_func(arr):
    arrsum = 0
    for i,val in enumerate(arr):
        if i%2 == 0: arrsum += val
    return (arrsum * arr[-1])
    
answer = etl_func(array)
print(answer)

请注意,如果您已经获得了要使用的数组,则不需要导入 random 和使用 array = random.sample(range(-100,20)。它们仅作为示例包含在此处。

另请注意,没有必要使用 else: pass。如果条件评估为真(即 i%2 == 0),则将执行 if 块。如果 i%2 != 0,循环将自动短路并移动到下一次迭代。添加 else: pass 就像告诉坐在你椅子上的人坐在你的椅子上。您是在告诉程序做无论如何它已经要做的事情。包含 else: pass 没有什么必然错误,如果它真的想要......但它只是添加了无意义的代码行,没有人愿意处理。

编辑:我不知道你是应该写一个函数还是只是一些代码(回到“提出一个格式正确的问题”问题......),所以我去了带功能。将函数变成简单的代码应该是微不足道的——但是您希望养成编写良好函数以实现可重用性和模块化的习惯。让一切运行更顺畅、更优雅,并使故障排除更容易

此函数也适用于您原始帖子的评论中提到的数组。

此外,如果您需要直接替换您的代码(而不是函数...我不熟悉 checkio 或您的答案应该如何格式化),并且您已经存储了整数数组在变量 array 中,试试这个:

arrsum = 0
for i,val in enumerate(array):
    if i%2 == 0: arrsum += val
print(arrsum * arraY[-1])

由于您的问题没有说明使用或定义函数的任何内容,return 语句不应出现在任何地方。除非你在写一个函数,否则没有什么可返回的。

,

我已经解决了问题,即您共享了遇到问题的阵列。因为你有这个数组:

[-37,-36,-19,-99,29,20,3,-7,-64,84,36,62,26,-76,55,-24,49,-65,41]

如果你注意到这里,84 出现了两次,第一次出现在索引 9,然后出现在 16。你用来获取元素索引的方法,.index 返回元素在第一个实例中找到的索引列表。因此,对于 84 的值,索引被视为 9 而不是 16,这是一个奇数,这不会将 84 添加到您的总和中。您应该将 enumerate 用于您的代码:

for idx,element in enumerate(array):             
        if idx %2 == 0:
            result += element

大佬总结

以上是大佬教程为你收集整理的无法弄清楚什么不起作用(检查练习“即使是最后一个”)全部内容,希望文章能够帮你解决无法弄清楚什么不起作用(检查练习“即使是最后一个”)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。