SyntaxError:以' \ x91'开头的非UTF-8代码

时间:2014-04-15 19:00:21

标签: python utf-8

我正在尝试为类编写二进制搜索程序,我很确定我的逻辑是正确的,但我一直收到非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

4 个答案:

答案 0 :(得分:15)

在代码顶部添加此行。它可能有用。

    # coding=utf8

答案 1 :(得分:10)

您的编辑器用U+2018 LEFT SINGLE QUOTATION MARK个字符替换了'(ASCII 39),通常是您使用Word或类似的字处理器而不是纯文本编辑器的符号;文字处理器试图让你的文字更漂亮&#39;并自动替换简单的引号和花哨的引号。然后将其保存在Windows 1252 codepage encoding中,其中花哨的引号保存为十六进制91个字符。

Python没有。它希望源代码保存为UTF-8并使用'"作为引号。使用记事本,或者更好的是IDLE来编辑Python代码。

您的代码中还有许多其他错误;例如,您不能在变量名中使用空格,Python使用and,而不是&作为布尔AND运算符。 !=是一个需要2个操作数的运算符(它意味着&#39;不等于&#39;,与==相反),布尔NOT运算符称为not

答案 2 :(得分:0)

开头的常量字符串字符不是正确的字符串定界符。您正在使用

‘Ava Fischer’   # ‘ and ’ as string delimiters

应该在什么时候

'Ava Fischer'   # Ascii 39 as string delimiter

或者也许

"Ava Fischer"   # Ascii 34 as string delimiter

答案 3 :(得分:0)

如果您使用的是Notepad ++,请单击顶部的Encoding,然后选择Encode in UTF-8