语法错误:非ASCII字符'\xe2'

5
我写了一个程序来获取Mega Doge Coin的价值。
import time
import urllib2
from datetime import datetime

def get_HTML():
    response = urllib.request.urlopen('http://www.dogepay.com')
    html = response.read()
    return html

def get_Value(rawHTML):
    index = rawHTML.find(“CCFF00”)
    while(rawHTML[index] != “$”):
            index = index + 1
    index = index + 1
    value = “”
    while(rawHTML[index].isdigit() or rawHTML[index] == ‘.’):
            value = value + rawHML[index]
            index = index + 1
    return float(value)

def get_DateTime():
    now = datetime.now()
    return '%s/%s/%s %s:%s:%s' % (now.month, now.day, now.year, now.hour, 
                                  now.minute, now.second)

def print_Output(DogeCoinValue, TimeDate):
    print timeDate + “ $“ + str(dogeCoinValue)

while(True):
    rawHTML = get_HTML()
    dogeCoinValue = get_Value(rawHTML)
    timeDate = get_DateTime()
    print_Output(dogeCoinValue, timeDate)
    time.sleep(5)

但是当我运行它时,出现了以下错误:
File "MegaDogeCoinTicker.py", line 11
SyntaxError: Non-ASCII character '\xe2' in file MegaDogeCoinTicker.py on line 
11, but no encoding declared; see http://www.python.org/peps/pep-0263.html 
for details

我需要做什么来修复它?当我在我的树莓派上运行它时,它是有效的,但我似乎无法在我的笔记本电脑上运行它。我的笔记本电脑正在运行Python 2.7.5。


我把所有的 改成了 ",把所有的 改成了 ',然后得到了以下错误信息:Traceback (most recent call last): File "MegaDogeCoinTicker.py", line 29, in rawHTML = get_HTML() File "MegaDogeCoinTicker.py", line 6, in get_HTML response = urllib.request.urlopen('http://www.dogepay.com') NameError: global name 'urllib' is not defined - AceFuzion
1
这是一个完全不同的错误,意味着您的问题已经解决。 - Charles Duffy
3个回答

16

除了不使用非 ASCII 引号之外,您还应在您的代码顶部添加以下行:

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

详情


9

您应该使用标准的ASCII引号:

index = rawHTML.find("CCFF00")

与其:

index = rawHTML.find(“CCFF00”)

5
建议选择更好的编辑器来编写 Python 代码。 - g.d.d.c
1
@g.d.d.c -- 是的,通常最好使用专门用于编写代码的编辑器 :-) - mgilson
1
@g.d.d.c 这充满了 Microsoft Word 的味道。 - Mark Ransom
1
我把所有的 改成了 ",把所有的 改成了 ',然后得到了以下错误信息:Traceback (most recent call last): File "MegaDogeCoinTicker.py", line 29, in rawHTML = get_HTML() File "MegaDogeCoinTicker.py", line 6, in get_HTML response = urllib.request.urlopen('http://www.dogepay.com') NameError: global name 'urllib' is not defined - AceFuzion
1
@AceFuzion,出现这个错误意味着应该修复它。此外,如果你阅读你的代码,它的原因应该是完全明显的。 - Charles Duffy

0
我遇到了这个问题,结果发现我的浏览器复制/粘贴的内容看起来像是普通的破折号字符,但实际上不是。也许这是需要注意的一个简单问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接