如何将str分解为列表?

时间:2016-02-29 02:20:38

标签: python tkinter

新手问题,但我正在制作一个带GUI的非常基本的程序。它需要法语单词并将它们翻译成英语(有点)

from tkinter import *
import webbrowser
def show_entry_fields():
    website = "www.wordreference.com/fren/%s" % (e1.get())
    webbrowser.open(website)

master = Tk()
Label(master, text="French Word").grid(row=0)

e1 = Entry(master)

e1.grid(row=0, column=1)

Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)

mainloop( )

问题是,如果我输入多个单词,它会打开

www.wordreference.com/fren/Bonjour%20Avoir

我试过了

e1 = [Entry(master)]

但这会给我带来错误,

也是如此
e1 = Entry[(master)]

1 个答案:

答案 0 :(得分:3)

您需要更改if (e.RowType != GridViewRowType.Data) return; var securrityKey = e.GetValue("str_securitykey"); System.Web.UI.WebControls.HyperLink grdHyper = grid.FindRowCellTemplateControl(e.VisibleIndex, null, "grdhyper") as System.Web.UI.WebControls.HyperLink; if (securrityKey.ToString() != "") { grdHyper.Visible = false; } else { var number = e.GetValue("lng_rndnum"); var lngId = e.GetValue("lng_id"); grdHyper.CssClass = "example6 cboxElement"; grdHyper.NavigateUrl = "GenerateSecurityKey.aspx?number=" + number.ToString() + "&id=" + lngId.ToString(); } 并使用show_entry_fields的{​​{3}}:

str

如果您希望单词由空格以外的其他内容分隔,则需要将分隔符传递给def show_entry_fields(): # assuming the words are separated by one or more spaces word_list = e1.get().split() # break the content of e1 into a list of words for word in word_list: website = "www.wordreference.com/fren/%s" % word webbrowser.open(website) 。例如,如果单词之间用逗号分隔后跟空格(如split),则'hello, world, bye'调用应为split

至于您获得的错误,word_list = e1.get().split(', ')使e1 = [Entry(master)]成为一个列表,其中没有e1方法。因此,当您致电get()时,您会收到AttributeErrorshow_entry_fields不会创建e1 = Entry[(master)]实例,而是尝试索引到Entry(类),这不是您可以索引的内容。所以这应该立即引发Entry