python 语法错误:以“\x91”开头的非UTF-8代码[重复]

7vux5j2d  于 2023-03-16  发布在  Python
关注(0)|答案(5)|浏览(248)

此问题在此处已有答案

"SyntaxError: Non-ASCII character ..." or "SyntaxError: Non-UTF-8 code starting with ..." trying to use non-ASCII text in a Python script(7个答案)
Syntax error on opening quotation mark(2个答案)
2小时前关门了。
我正在尝试为一个类编写一个二进制搜索程序,我很确定我的逻辑是正确的,但是我总是得到一个非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
pbwdgjma

pbwdgjma1#

把这一行加到你的代码的顶部,它可能会起作用。

# coding=utf8
of1yzvn4

of1yzvn42#

您的编辑器将'(ASCII 39)替换为U+2018 LEFT SINGLE QUOTATION MARK字符,这通常表示您使用Word或类似的字处理程序而不是纯文本编辑器;一个文字处理器试图使你的文本“漂亮”,并自动将简单的引号替换为花哨的引号。这被保存在Windows 1252 codepage encoding中,其中花哨的引号被保存为十六进制91字符。
Python没有这样做。它希望源代码以UTF-8格式保存,并使用'"作为引号。使用记事本,或者更好的是,IDLE来编辑Python代码。
您的代码中还有许多其他错误;你不能在变量名中使用空格,例如,Python使用and,而不是&作为布尔AND运算符。!=是一个需要2个操作数的运算符(它意味着'不等于',与==相反),布尔NOT运算符被称为not

mwngjboj

mwngjboj3#

如果您使用的是记事本++,请单击顶部的Encoding并选择Encode in UTF-8

tag5nh1u

tag5nh1u4#

常量字符串以**开头的字符不是正确的字符串分隔符。**您使用的是

‘Ava Fischer’   # ‘ and ’ as string delimiters

当它本应该是

'Ava Fischer'   # Ascii 39 as string delimiter

或许

"Ava Fischer"   # Ascii 34 as string delimiter
5sxhfpxr

5sxhfpxr5#

将这一行添加到代码的顶部,可能会有所帮助
# -*- coding:utf-8 -*-

相关问题