首页 > 解决方案 > 如何解决“类型错误:linear_search() 缺少两个必需的位置参数”?:'item' 和 'item_to_search' -

问题描述

线性搜索尤其是导致问题的原因,尽管即使在谷歌搜索和查看 stackoverflow 之后我也不知道该怎么做。有任何想法吗?抱歉,如果格式错误,这是我第一次发帖。

def menu():
  print("Option a: Use a linear search")
  print("Option b: Use a binary search")
  print("Option c: Use a bubble sort")
  print("Option d: Use a merge sort")
  print("Option e: Quit")
menu()
def linear_search(items,item_to_search):
  i = 0
  while i < len(items):
    if list_of_numbers[i] == item_to_search:
      return i
    i = i + 1  
  return -1
  list_of_numbers = [21, 34, 5, 47, 11]
  number_to_search = int(input("Enter number you want to search:"))
  search_result = linear_search(list_of_numbers, number_to_search)
  if search_result == -1:  
      print("Given number is not found in the list")
  else:
      print("Given number is found in the list at position:", search_result + 1)

def binary_search(item_list,item):
  first = 0
  last = len(item_list)-1
  found = False
  while( first<=last and not found):
    mid = (first + last)//2
    if item_list[mid] == item:
      found = True
    else:
      if item < item_list[mid]:
        last = mid - 1
      else:
        first = mid + 1
  return found
choice = input("Please choose an option ie a")
if choice == 'e':
  print("Program ended")
elif choice == 'a':
  linear_search()
elif choice == 'b':
  print(binary_search([1,2,3,5,8], 6))
  print(binary_search([1,2,3,5,8], 5))

这是我收到的错误:

类型错误:linear_search() 缺少两个必需的位置参数:“item”和“item_to_search”

标签: python

解决方案


在代码的底部,您调用搜索函数但不传递任何参数。

elif choice == 'a':
  linear_search()

推荐阅读