2017-04-22 6 views
0

ランダムなリストを作成し、そのリストをソートしてから5つの番号を求め、番号がリストにあるかどうかを表示するバイナリ検索。エラーメッセージBubbleSort(ran_list) Type Error:ran_list not definedが表示されます。どんな助けが役立つだろう、私はran_listcreateList関数で明確に定義されていると思った。あなたはmyBubbleSort()にそれを渡すようにしようとするとユーザーに5つの番号を問い合わせて、その番号がリストにあるかどうかを示すメッセージを表示します。

def createList(): 
    import random 
    ran_list=[] 

    for n in range(50): 
     numbers=random.randint(1,100) 
     ran_list.append(numbers) 

    return ran_list 

def myBubbleSort(ran_list): 
    for i in range(len(ran_list),0,-1): 
     for j in range(0,i-1): 
      if ran_list[j]>ran_list[j+1]: 
       temp=ran_list[j] 
       ran_list[j]=ran_list[j+1] 
       ran_list[j+1]=temp 

    return ran_list 

def myBinarySearch(value,ran_list): 
    low=0 
    high=len(ran_list)-1 
    pos=-1 

    while low<=high and pos==-1: 
     mid=(low+high)//2 

     if ran_list[mid]<value: 
      low=mid+1 

     elif ran_list[mid]>value: 
      high=mid-1 
     else: 
      pos=mid 

    return pos 

'' ' メインプログラム '''

createList() 
myBubbleSort(ran_list) 

for i in range(5): 
    value=int(input("Please enter a number: ")) 
    myBinarySearch(value,num_list) 

    if pos==-1: 
     print("The number is not in the list") 

    else: 
     print("The number is in the list") 
+0

あなたのスクリプトの先頭にimport randomを置く必要があります。また

ran_list = createList() 

'ran_list'これはあなたの編集したコードですあなたのメインプログラムで。 –

答えて

1

ran_listが定義されていません。メインプログラムの最初の行をran_list = createList()に変更します。

1

コード内に多くの変数を定義するのを忘れました。

def createList(): 
    import random 
    ran_list=[] 

    for n in range(50): 
     numbers=random.randint(1,100) 
     ran_list.append(numbers) 

    return ran_list 

def myBubbleSort(ran_list): 
    for i in range(len(ran_list),0,-1): 
     for j in range(0,i-1): 
      if ran_list[j]>ran_list[j+1]: 
       temp=ran_list[j] 
       ran_list[j]=ran_list[j+1] 
       ran_list[j+1]=temp 

    return ran_list 

def myBinarySearch(value,ran_list): 
    low=0 
    high=len(ran_list)-1 
    pos=-1 

    while low<=high and pos==-1: 
     mid=(low+high)//2 

     if ran_list[mid]<value: 
      low=mid+1 

     elif ran_list[mid]>value: 
      high=mid-1 
     else: 
      pos=mid 

    return pos 



ran_list = createList()        # Was not assigned to ran_list 
num_list = myBubbleSort(ran_list)      # Same here.. 

for i in range(5): 
    value=int(input("Please enter a number: "))  
    pos = myBinarySearch(value,num_list)    # Was not assigned 

    if pos==-1: 
     print("The number is not in the list") 

    else: 
     print("The number is in the list") 
+0

助けてくれてありがとう –

0

変更するには、コードの最初の行:あなたが定義されていない

+0

助けてくれてありがとうが、私はかなり混乱しています。コードの最初の行でran_list = createList()を実行するには、定義する前に関数を呼び出すことはできません。 –

+0

私はあなたのメインスクリプトを意味しました。また、@ direnprobsの解決策も参照してください。それははるかに優れており、あなたの問題はすべて解決されています – Kev1n91

関連する問題