Python 3遇到[解码错误-输出不是utf-8](升华文本2)

Python 3遇到[解码错误-输出不是utf-8](升华文本2),python,utf-8,tkinter,Python,Utf 8,Tkinter,我刚开始学习python,我正在尝试使用标准Tkinter库创建一个计算器。每次尝试构建时,我都会遇到以下错误: File "C:\Python33\calc.py", line 10 [Decode error - output not utf-8] [Finished in 0.1s with exit code 1] 构建系统是基于python的,还是我需要在pyhton的its包中更改一些内容? 提前感谢:) 这是我的密码: from tkinter impor

我刚开始学习python,我正在尝试使用标准Tkinter库创建一个计算器。每次尝试构建时,我都会遇到以下错误:

    File "C:\Python33\calc.py", line 10
    [Decode error - output not utf-8]
    [Finished in 0.1s with exit code 1]
构建系统是基于python的,还是我需要在pyhton的its包中更改一些内容? 提前感谢:)

这是我的密码:

from tkinter import *

class Calculon:
    def __init__(self, master):
        # the self variable represents the instance variable of the object
        buttonText = ["1", "2", "3", "+", "4", "5", "6", "-", "7", "8", "9", "*", "0", ".", "=", "/"]
        """
        The instance variable is bind to a anonymous lamda function which doesnt need an include statement
        When a event ocurres, an handler is called
        """
        master.bind(‘<Escape>’, lambda e: master.quit())
        master.bind(‘<Return>’, lambda e: self.buttonPress(“=”))
        """
        loops trought each in buttonText array
        The following line binds each character to its own buttonPress 
        """
        for each in buttonText:
            master.bind(each, lambda e: self.buttonPress(repr(e.char).strip(“‘”)))
            """
            Declaring the result has a string value
            Creation of labels which contain the result value's
            while grid orginazes the table  

            """
            self.result = StringVar()
            self.result.set(“0″)
            self.result = Label(master, anchor=E, textvariable=self.result, justify=RIGHT, bg=”white”)
            self.result.grid(row=0, column=0, columnspan=4, sticky=E+N+S+W)

            self.operator = StringVar()
            self.operator.set(“”)
            self.operator = Label(master, anchor=W, textvariable=self.operator, justify=LEFT, bg=”grey”)
            self.operator.grid(row=0, column=0, sticky=W+N+S+E)

            self.temp = “”

            self.operations = {“+”: self.add, “-”: self.sub, “*”: self.mul, “/”:self.div}

            self.menubar = Menu(master)

            self.pullDown = Menu(self.menubar, tearoff=0)
            self.pullDown.add_separator()
            self.pullDown.add_command(label=”Quit”, command=master.quit)

            self.menubar.add_cascade(label=”Do it”, menu=self.pullDown)

            master.configure(menu=self.menubar)

            """

            Loop to limit the ammount of labels per row

            """

            rowC = 1
            colC = 0
            for item in buttonText:
                if colC > 3:
                    colC = 0
                    rowC = rowC + 1
                    Button(master, text=str(item), command=lambda i=item:self.buttonPress(i)).grid(row=rowC, column=colC)
                    colC = colC + 1        

    def add(self, a, b):
            return a+b

    def sub(self, a, b):
        return a-b

    def mul(self, a, b):
        return a*b

    def div(self, a, b):
        if b != 0:
        return a/b
        else:
        return “division by zero”

    def buttonPress(self, c):
        if ((ord(c) > 47) and (ord(c) < 58)) or (ord(c) == 46):
        if len(self.result.get()) > 10:
        return -1
        if self.result.get() != “0″:
        self.result.set(self.result.get() + c)
        else:
        self.result.set(c)
        elif (ord(c) > 41) and (ord(c) < 48) or ord(c) == 61:
        if self.operator.get() == “” or self.operator.get() == “=”:
        self.operator.set(c)
        self.temp = int(self.result.get())
        elf.result.set(“0″)
        else:
        result = self.operations[self.operator.get()](self.temp, int(self.result.get()))
        if result < 0:
        self.result.configure(fg=”red”)
        else:
        self.result.configure(fg=”black”)
        self.result.set(str(result))
        self.operator.set(c)

    def main():
        root = Tk()
        calc = Calculon(root)

        root.mainloop()
        root.destroy()

    if __name__ == “__main__”:
    main()
从tkinter导入*
类结石:
定义初始(自我,主):
#self变量表示对象的实例变量
buttonText=[“1”、“2”、“3”、“+”、“4”、“5”、“6”、“-”、“7”、“8”、“9”、“*”、“0”、“0”、“3”、“3”、“4”、“5”、“6”、“6”、“7”、“8”、“9”、“8”、“9”、“0”、“0”、“3”、“3”、“3”、“3”、“4”、“5”、“6”、“7”、“7”、“8”、“8”、“9”、“7”、“0”、“0”、“3”、“3”、“3”、“3”、“3”、“4
"""
实例变量绑定到匿名lamda函数,该函数不需要include语句
当发生事件时,将调用处理程序
"""
master.bind(“”,lambda e:master.quit())
master.bind(“”,lambda e:self.buttonPress(“”)
"""
buttonText数组中的每个循环
下一行将每个字符绑定到其自己的buttonPress
"""
对于buttonText中的每个按钮:
master.bind(每个,lambda e:self.buttonPress(repr(e.char.strip)(“'))
"""
声明结果有一个字符串值
创建包含结果值的标签
当网格组织表格时
"""
self.result=StringVar()
self.result.set(“0〃)
self.result=Label(master,anchor=E,textvariable=self.result,justify=RIGHT,bg=“white”)
self.result.grid(行=0,列=0,列span=4,粘性=E+N+S+W)
self.operator=StringVar()
self.operator.set(“”)
self.operator=标签(master,anchor=W,textvariable=self.operator,justify=LEFT,bg=“grey”)
self.operator.grid(行=0,列=0,粘性=W+N+S+E)
self.temp=“”
self.operations={“+”:self.add,“-”:self.sub,“*”:self.mul,“/”:self.div}
self.menubar=菜单(主菜单)
self.pullDown=菜单(self.menubar,tearof=0)
self.pullDown.add_分隔符()
self.pullDown.add_命令(label=“Quit”,command=master.Quit)
self.menubar.add\u级联(label=“Do it”,menu=self.pullDown)
master.configure(menu=self.menubar)
"""
循环以限制每行标签的数量
"""
rowC=1
colC=0
对于buttonText中的项目:
如果colC>3:
colC=0
rowC=rowC+1
按钮(master,text=str(item),command=lambda i=item:self.buttonPress(i)).grid(行=rowC,列=colC)
colC=colC+1
def添加(自身、a、b):
返回a+b
def接头(自身、a、b):
返回a-b
def mul(自身、a、b):
返回a*b
def分区(自身、a、b):
如果b!=0:
返回a/b
其他:
返回“除零”
def按钮按下(自身,c):
如果((ord(c)>47)和(ord(c)<58))或(ord(c)==46):
如果len(self.result.get())大于10:
返回-1
如果self.result.get()!=“0″:
self.result.set(self.result.get()+c)
其他:
self.result.set(c)
elif(作战需求文件(c)>41)和(作战需求文件(c)<48)或作战需求文件(c)==61:
如果self.operator.get()
self.operator.set(c)
self.temp=int(self.result.get())
elf.result.set(“0〃)
其他:
结果=self.operations[self.operator.get()](self.temp,int(self.result.get())
如果结果<0:
self.result.configure(fg=“红色”)
其他:
self.result.configure(fg=“黑色”)
self.result.set(str(result))
self.operator.set(c)
def main():
root=Tk()
calc=结石(根)
root.mainloop()
root.destroy()
如果名称=“\uuuuu main\uuuuuuuu”:
main()

您正在使用
'
'
来表示字符串,但这些字符不正确。您必须分别用
'
'
替换它们


有关正确语法的更多信息,请参阅。

打开Python.sublime-build,并添加一行“encoding”:“cp936”,保存文件

在以下位置找到Python.sublime-build:

Sublime Text 2 : SublimeText2\Data\Packages\Python\Python.sublime-build
Sublime Text 3 :SublimeText3\Packages\Python.sublime-package