猿问

在python中计算列表中过零的次数

我试图在列表中找到零交叉的数量。我正在使用的代码是:


for i in range(1, len(value)):

    zerocrossing = 0

    if ((value[i-1]) > 0 and value[i] < 0):

        zerocrossing += 1

    if ((value[i-1]) < 0 and value[i] > 0):

        zerocrossing += 1

stdio.writeln('The Number of Zero Crossings is ' + str(zerocrossing))

这段代码没有给我任何错误,但它没有给我正确的答案。如果我给它输入[1.0, -1.0, 1.0]它给我1,但它应该给2. 我究竟做错了什么?


墨色风雨
浏览 389回答 2
2回答

潇湘沐

您zerocrossing在每次循环迭代时都设置为零。移出zerocrossing = 0for 循环。

吃鸡游戏

l = [1.0, -1.0, 1.0]zero_x = 0for idx, item in enumerate(l[:-1]):&nbsp; &nbsp; if l[idx] < 0 and l[idx+1] > 0:&nbsp; &nbsp; &nbsp; &nbsp; zero_x +=1&nbsp; &nbsp; if l[idx] > 0 and l[idx+1] < 0:&nbsp; &nbsp; &nbsp; &nbsp; zero_x +=12
随时随地看视频慕课网APP

相关分类

Python
我要回答