You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Colab中为快速排序添加全局变量引发缩进错误求助

快速排序添加全局变量后缩进错误的排查与修复

问题

在Colab环境下为快速排序算法添加全局变量r后,触发IndentationError,提示缩进不匹配,但视觉上缩进是对齐的。未添加该变量时代码运行正常。

错误代码:

# Quicksort Sort
r=0
def partition(array, low, high):
  global r
  pivot = array[high]
    i = low - 1
    for j in range(low, high):
        if array[j] <= pivot:
            i = i + 1
            (array[i], array[j]) = (array[j], array[i])
      r=r+1
    (array[i + 1], array[high]) = (array[high], array[i + 1])
  r=r+1
    return i + 1

def quickSort(array, low, high):
    if low < high:
        pi = partition(array, low, high)
        quickSort(array, low, pi - 1)
        quickSort(array, pi + 1, high)


data = [7,1,3,2,4,5,6]
print("Unsorted Array")
print(data)
size = len(data)
quickSort(data, 0, size - 1)
print('Sorted Array in Ascending Order:')
print(data,r)

报错信息:

File "<tokenize>", line 11
    r=r+1
    ^
IndentationError: unindent does not match any outer indentation level

原因分析

问题出在混合使用空格和制表符作为缩进,Python对缩进的一致性要求极高——哪怕视觉上对齐,只要同一代码块内混用不同缩进字符(比如有的行用2个空格,有的用制表符),解释器就会判定缩进不匹配。添加r变量时的修改,恰好暴露了原本隐藏的混合缩进问题。

修复方案

将所有缩进统一为4个空格(Python标准缩进规范),同时调整r=r+1的缩进层级到对应代码块内:

# Quicksort Sort
r = 0
def partition(array, low, high):
    global r
    pivot = array[high]
    i = low - 1
    for j in range(low, high):
        if array[j] <= pivot:
            i = i + 1
            (array[i], array[j]) = (array[j], array[i])
            r = r + 1  # 缩进匹配if判断块
    (array[i + 1], array[high]) = (array[high], array[i + 1])
    r = r + 1  # 缩进匹配partition函数外层
    return i + 1

def quickSort(array, low, high):
    if low < high:
        pi = partition(array, low, high)
        quickSort(array, low, pi - 1)
        quickSort(array, pi + 1, high)


data = [7,1,3,2,4,5,6]
print("Unsorted Array")
print(data)
size = len(data)
quickSort(data, 0, size - 1)
print('Sorted Array in Ascending Order:')
print(data, r)

预防建议

在Colab中可以使用Edit菜单下的Convert Indents to Spaces功能,自动将所有制表符转换为空格,避免混合缩进问题。

内容的提问来源于stack exchange,提问作者Beryl Amend

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 07:50:17