我正在尝试为一个类编写二进制搜索程序,并且我很确定自己的逻辑是正确的,但是我一直收到非UTF-8错误。我从未见过此错误,任何帮助/说明都将是非常棒的!谢谢你
这是代码。
def main(): str names = [‘Ava Fischer’, ‘Bob White’, ‘Chris Rich’, ‘Danielle Porter’, ‘Gordon Pike’, ‘Hannah Beauregard’, ‘Matt Hoyle’, ‘Ross Harrison’, ‘Sasha Ricci’, ‘Xavier Adams’] binarySearch(names, input(str("Please Enter a Name."))) print("That name is at position "+position) def binarySearch(array, searchedValue): begin = 0 end = len(array) - 1 position = -1 found = False while !=found & begin<=end: middle=(begin+end)/2 if array[middle]== searchedValue: found=True position = middle elif array[middle] >value: end=middle-1 else: first =middle+1 return position
您的编辑器用U + 2018左单引号字符替换了'(ASCII 39),通常是您使用Word或类似的字处理器而不是纯文本编辑器的符号;文字处理器会尝试使您的文字“更漂亮”,并自动将诸如简单引号等内容替换为花哨的引号。然后,将其保存为Windows 1252代码页编码,其中的花式引号保存为十六进制91个字符。
'
Python完全没有。它希望将源代码保存在UTF-8中并使用'或"引号。使用记事本,或者最好使用IDLE来编辑Python代码。
"
您的代码中还有许多其他错误;例如,您不能在变量名中使用空格,而Python使用and,而不是&布尔AND运算符。!=是一个需要2个操作数的运算符(表示’不等于’,与相反==),则将布尔型NOT运算符称为not。
and
&
!=
==
not