猿问

代码将整数读取为float

我的代码将iMid读取为浮点并给出TypeError,即使将其包装在整数函数中也是如此。另外,还有另一种方法来查找中间值的索引,这比我在这里尝试的方法更容易吗?


def isIn(char, aStr):

'''

char: a single character

aStr: an alphabetized string


returns: True if char is in aStr; False otherwise

'''

# Your code here

import numpy as np

def iMid(x):

    '''

    x : a string


    returns: index of the middle value of the string


    '''


    if len(x) % 2 == 0:

        return int(np.mean(len(x)/2, (len(x)+2)/2)) #wrapped the 

                                                    # answer for iMid 

                                                    #in the integer function

    else:

        return int((len(x)+1)/2)


if char == aStr[iMid] or char == aStr: #iMid is not being interpreted as an integer

    return True

elif char < aStr[iMid]:

    return isIn(char, aStr[0:aStr[iMid]]) 

else:

    return isIn(char, aStr[aStr[iMid]:])


print(isIn('c', "abcd"))


慕妹3242003
浏览 89回答 3
3回答

呼如林

在if&nbsp;char&nbsp;==&nbsp;aStr[iMid]&nbsp;or&nbsp;char&nbsp;==&nbsp;aStr:&nbsp;#iMid&nbsp;is&nbsp;not&nbsp;being&nbsp;interpreted&nbsp;as&nbsp;an&nbsp;integeriMid不是整数。这是功能。您需要调用该函数以获取返回的整数。if&nbsp;char&nbsp;==&nbsp;aStr[iMid(aStr)]&nbsp;or&nbsp;char&nbsp;==&nbsp;aStr:&nbsp;#iMid&nbsp;is&nbsp;called&nbsp;and&nbsp;returns&nbsp;an&nbsp;integer

白猪掌柜的

正如Doctorlove所说,aStr [iMid]正在使用函数iMid作为索引。因为iMid是一个功能对象。我认为您应该将所有aStr [iMid]替换为aStr [iMid(aStr)]
随时随地看视频慕课网APP

相关分类

Python
我要回答