简体   繁体   中英

SyntaxError: Non-UTF-8 code starting with '\x91'

I am trying to write a binary search program for a class, and I am pretty sure that my logic is right, but I keep getting a non-UTF-8 error. I have never seen this error and any help/clarification would be great! Thanks a bunch.

Here's the code.

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

Add this line at the top of you code. It may work.

    # coding=utf8

Your editor replaced ' (ASCII 39) with U+2018 LEFT SINGLE QUOTATION MARK characters, usually a sign you used Word or a similar wordprocessor instead of a plain text editor; a word processor tries to make your text 'prettier' and auto-replaces things like simple quotes with fancy ones. This was then saved in the Windows 1252 codepage encoding , where the fancy quotes were saved as hex 91 characters.

Python is having none of it. It wants source code saved in UTF-8 and using ' or " for quotation marks. Use notepad, or better still, IDLE to edit your Python code instead.

You have numerous other errors in your code; you cannot use spaces in your variable names, for example, and Python uses and , not & as the boolean AND operator. != is an operator requiring 2 operands (it means 'not equal', the opposite of == ), the boolean NOT operator is called not .

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

The character you are beginning your constant strings with is not the right string delimiter. You are using

‘Ava Fischer’   # ‘ and ’ as string delimiters

when it should have been either

'Ava Fischer'   # Ascii 39 as string delimiter

or maybe

"Ava Fischer"   # Ascii 34 as string delimiter

4 年多,没有人看到(除了所有已经指出的语法错误)代码指的是一个从未提到/使用的变量“第一”我猜他想在倒数第二行使用“开始”而不是“第一”

将此行添加到代码的顶部,它可能会有所帮助

# -*- coding:utf-8 -*-

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM