此问题在此处已有答案:
"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
5条答案
按热度按时间pbwdgjma1#
把这一行加到你的代码的顶部,它可能会起作用。
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
。mwngjboj3#
如果您使用的是记事本++,请单击顶部的
Encoding
并选择Encode in UTF-8
。tag5nh1u4#
常量字符串以**开头的字符不是正确的字符串分隔符。**您使用的是
当它本应该是
或许
5sxhfpxr5#
将这一行添加到代码的顶部,可能会有所帮助
# -*- coding:utf-8 -*-