【问题标题】:When running my function my if statement is not running运行我的函数时,我的 if 语句没有运行
【发布时间】:2018-02-07 12:17:08
【问题描述】:

我正在尝试进行简单的冒泡排序,而我用来对数组中的数字进行排序的 if 语句没有运行。谁能帮我让它运行?

这是我的代码:

def Bubble( a ):
    Flag = False
    while not Flag:
        Flag = True
        for i in range(0, len(a), -1):
            if a[i] > a[i+1]: #this if statement isn't running
                a[i], a[i + 1] = a[i + 1], a[i]
                print("hi")
                Flag = False



def main():
    a = GRN(10)
    acopy = a[:]
    Bubble(a)
    acopy.sort()
    print(a==acopy)
    print(a)
    print(acopy)


main()

【问题讨论】:

  • 为什么你认为它没有运行?
  • 我将 print 语句嵌套在 if 语句中,它没有打印
  • 在 if 中放一条 print 语句只证明条件是否为真,而不证明那行代码是否正在运行。

标签: python arrays python-3.x if-statement bubble-sort


【解决方案1】:

range(0, len(a), -1) 总是一个空列表,因为步长是负数。这不是if 语句的错,而是for 循环。你需要的是range(len(a)-1)

【讨论】:

  • 当我删除 -1 我的列表索引超出范围
  • 非常感谢!十分钟后我会投票。
猜你喜欢
  • 1970-01-01
  • 2018-08-03
  • 2022-01-11
  • 1970-01-01
  • 2022-11-19
  • 2021-04-24
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
相关资源
最近更新 更多