2016-10-09 7 views
2

私はsort program.iにbubble(バブルソートプログラム)とcal_time(時間を計算する)という2つのファイルがあり、それらは同じディレクトリにあります。自分の.pyファイルをインポートするとTypeErrorが発生する

問題は、流暢に単独でバブル作業です。しかし、私は通訳は私にエラーメッセージを表示し、私の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] 
+1

'はrandom.Random()' '、これはあなたが正しいです –

答えて

2

あなたの問題はここにある:

result.append(random.random) 

あなたはリストに方法random.randomを追加している - タイプbuiltin_function_or_methodている(したがって、あなたが受けているエラーが発生? - どのように機能を比較するだろうが)。

result.append(random.random()) 
+0

輸入とは何の関係もありませんrandom.random'ありがとうません! – dogewang

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 
関連する問題