我正在做一个排序程序。我有两个名为bubble(冒泡排序程序)和cal_time(计算时间)的文件,它们位于同一个目录中。
问题是,泡沫工作是否流利。但是,当我将气泡导入我的cal_time文件和回调冒泡排序时,解释器会向我显示错误消息,显然我的代码中没有built_in函数或方法:
Traceback (most recent call last): File "F:/alogrithm/wzysort/cal_time.py", line 13, in <module> bubble.bubble_sort(generate_random_list()) File "F:\alogrithm\wzysort\bubble.py", line 4, in bubble_sort if a[indx] > a[indx+1]: TypeError: unorderable types: builtin_function_or_method() > builtin_function_or_method()
cal_time.py:
import time
from wzysort import bubble
import random
def generate_random_list():
result = []
for i in range(10):
result.append(random.random)
return result
time_start = time.time()
bubble.bubble_sort(generate_random_list())
time_end = time.time()
print(time_end - time_start)
bubble.py:
def bubble_sort(a):
for i in range(len(a)-1):
for indx in range(len(a[:-i-1])):
if a[indx] > a[indx+1]:
a[indx], a[indx + 1] = a[indx + 1], a[indx]
答案 0 :(得分:2)
你的问题在于:
result.append(random.random)
您正在将方法random.random
附加到列表中 - 其类型为builtin_function_or_method
(从而导致您收到的错误 - 您将如何比较函数?)。
相反,您想要调用方法:
result.append(random.random())
答案 1 :(得分:0)
在generate_random_list()
函数中,您正在执行random.random
。由于它是一个函数,您应该将其写为random.random()
。因此,generate_random_list()
函数的代码应为:
def generate_random_list():
result = []
for i in range(10):
result.append(random.random())
return result