我是Python和计算机编程的新手,因此,在在线阅读了基础教程之后,我实现了快速排序。我遇到以下错误:
Traceback (most recent call last):
File "quicksort.py", line 1, in <module>
def quicksort(a, left = 0, right = len(a)):
NameError: name 'a' is not defined
完整代码::
def quicksort(a, left = 0, right = len(a)):
if(left<right):
pivotindx = quick(a, left, right)
quicksort(a, left, pivotindx-1)
quicksort(a,pivotindx+1,right)
return a
def quick(arr, start = 0, end = len(a)):
pivot = arr[start]
swpindx = start
i = start + 1
while(i < end):
if(pivot > arr[i]):
swpindx+=1
arr[swpindx] , arr[i] = arr[i] , arr[swpindx]
i+=1
arr[start] , arr[swpindx] = arr[swpindx] , arr[start]
return swpindx
arr = []
size = int(input('enter size of array:'))
for i in range(size):
x = int(input(f'enter value {i}:'))
arr.append(x)
size = len(arr)
result = quicksort(arr, 0, size)
print(result)
声明功能时,您无法指定len(a)
。
在python中,当声明函数时指定=
为默认参数时。因此,当您在调用函数时不提供它时,将使用它。
In [36]: def hello(name, surename="James"):
...: print(name, surename)
...:
In [37]: hello("Thomas")
Thomas James
In [38]: hello("Thomas","Shelby")
Thomas Shelby