TypeError: binarySearch() 'key' 得到一个意外的关键字参数



代码

a = int(input("What number do you want to search for in the list? "))
def bubbleSort(alist):                                         
    for passnum in range(len(alist)-1,0,-1):                                   
        for i in range(passnum):                                   
            if alist[i]>alist[i+1]:                                            
                temp = alist[i]                                                         
                alist[i] = alist[i+1]                                          
                alist[i+1] = temp                                                
def binarySearch(alist, item):
    first = 0
    last = len(alist)-1
    found = False
    while first<=last and not found:
        midpoint = (first + last)//2                                           
        if alist[midpoint] == item:                                              
            found = True                                                           
        else:                                 
            if item < alist[midpoint]:
                last = midpoint-1
            else:
                first = midpoint+1
    return found                
def getkey(item):                                                 
    return item[0]                                               
alist = [(75, "Jack"), (23, "Mark"), (31, "Dave"), (93, "Michael"), (52, "Clare"), (67, "Connie"), (37, "Bob"), (87, "Gary"), (59, "Billy"), (69,"Simon")]                             
bubbleSort(alist)                                  
print(binarySearch(alist, a, key=getkey))

这是我得到的错误:

追踪(最近一次通话):
文件"C:\Python34/Lib/idlelib/Binary Search.py",第35行,在
中print(binarySearch(alist,a,key=getkey)
TypeError:binarySearch()获得了意外的关键字参数"key"

知道为什么吗

您向binarySearch()传递了三个参数,但此函数只接受两个,因此无法识别参数'key'。

以这种方式调用函数:

print(binarySearch(alist, a))

因为您定义函数有两个参数,并且您将三个参数传递给函数,所以会发生错误。你可以像一样定义你的功能

`def binarySearch(alist, item, key=getkey):
    #your code

然后可以将三个或两个参数传递给函数。

相关内容

最新更新