错误? 想不通(Error? Can’t Figure Out)

2019-11-03 02:44发布

我创建一个Tkinter的程序,并遇到了这个奇怪的错误。 这里是我的代码:

from Tkinter import *   
def get_info(key):     
    pass   
def create_new():  
    create = Toplevel(root)
    create.title('Create A New Contact')
    Label(create, text='Name: ').grid(row=0, sticky=W+E)
    name = Entry(create, width=8).grid(row=1, sticky=W+E)
    Label(create, text='Address(ex. 1111 Main St, MyCity, Anystate 12345): ', wrapLength=1).grid(row=2, sticky=W+E)
    address = Entry(create, width=8).grid(row=3, sticky=W+E)
def access():
    access_window = Toplevel(root)
    access_window.title("Access a Contact")
    Label(access_window, text=“Enter a first name: ‘).grid(row=0, sticky=‘W+E’)#Error here
    access_key = Entry(access_window, width=8).grid(row=0, sticky='W+E')
    Button(access_window, text="Submit", command=lambda: get_info(access_key.get('0.0', 'end-1c'))).grid(row=2, sticky='W+E')
root = Tk()
root.title('Address Book')
button1 = Button(root, text="Create New", command=create_new).grid(row=0, column=0)
button2 = Button(root, text=“Access Person”, command=access).grid(row=0, column=1)

控制台说:

Error: EOL while scanning string literal.

我怎样才能解决这个问题?

Answer 1:

您需要使用同一种引号标记字符串的开始和结束。

因此,行,你强调需要使用一致的引号 - 你不应该混合单引号和双引号。 你行需要这个样子

Label(access_window, text="Enter a first name: ").grid(row=0, sticky=‘W+E’)

或这个

Label(access_window, text='Enter a first name: ').grid(row=0, sticky=‘W+E’)

不是这个,你开始用双引号,并用单引号结束

Label(access_window, text=“Enter a first name: ‘).grid(row=0, sticky=‘W+E’)


Answer 2:

此行有无效字符:

Label(access_window, text=“Enter a first name: ‘).grid(row=0, sticky=‘W+E’)
#                       --^                  --^                   --^ --^

那么,这一个:

button2 = Button(root, text=“Access Person”, command=access).grid(row=0, column=1)
#                         --^           --^

在Python,字符串可以仅由正常撇号封闭'或正常引号"


要解决此问题,替换每个'"

Label(access_window, text="Enter a first name: ").grid(row=0, sticky="W+E")

button2 = Button(root, text="Access Person", command=access).grid(row=0, column=1)

此外, grid每Tkinter的部件的方法适用于就地(它总是返回None )。 因此,你应该把它在自己的路线:

button2 = Button(root, text="Access Person", command=access)
button2.grid(row=0, column=1)


文章来源: Error? Can’t Figure Out