Python 运行函数时,if语句未运行
我试图进行一个简单的冒泡排序,但用于对数组中的数字进行排序的if语句没有运行。有人能帮我把这个弄走吗 这是我的密码:Python 运行函数时,if语句未运行,python,arrays,python-3.x,if-statement,bubble-sort,Python,Arrays,Python 3.x,If Statement,Bubble Sort,我试图进行一个简单的冒泡排序,但用于对数组中的数字进行排序的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
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()
范围(0,len(a),-1)
始终为空列表,因为步骤为负。这不是if
语句的错,而是for
循环的错。您需要的是range(len(a)-1)
为什么您认为它没有运行?我将print语句嵌套在if语句中,但它没有打印在if语句中,将print语句放入if语句中仅证明条件是否为真,不管那行代码是否正在运行。当我删除-1时,我的列表索引超出范围。谢谢!十分钟一过,我就投票。