[英]Hangman on python: How do I make it if I input a letter more than once, it will be considered in correct?
[英]How do I make this Tkinter Radiobutton in Python only add the letter that's been selected once, instead of adding the first letter two times?
我正在尝试使用 Tkinter 制作一个带有 GUI 的 Python 应用程序,这将允许用户 select 一个字母从两个字母的selectedletter
中选择的一个字母,然后在选择的字母之前打印到选项卡用户关闭之前选择的字母。
from tkinter import *
def addletter():
a = "a"
b = "b"
if(x.get()==0):
selectedletter.append(a)
if(x.get()==1):
selectedletter.append(b)
window = Tk()
letters = ["a", "b"]
selectedletter = []
x= IntVar()
for index in range(len(letters)):
radiobutton = Radiobutton(window,
text=letters[index],
value=index,
variable=x,
command=addletter()
)
radiobutton.pack()
window.mainloop()
print(selectedletter)
但是由于某种原因,它不仅将选择的字母添加到数组中,而且仅将第一个字母(在本例中a
)添加了两次。 例如,当关闭程序之前选择的字母是b时,我希望 output 是['b']
,但我得到的是['a', 'a']
。 如何获得所需的 output?
从command=addletter
中去掉括号,之后它应该可以工作了。
这是一个解释。
from tkinter import *
def addletter():
a = "a"
b = "b"
if(x.get()==0):
selectedletter.append(a)
if(x.get()==1):
selectedletter.append(b)
print(selectedletter)
window = Tk()
letters = ["a", "b"]
selectedletter = []
x= IntVar()
for index in range(len(letters)):
radiobutton = Radiobutton(window,
text=letters[index],
value=index,
variable=x,
command=addletter
)
radiobutton.pack()
window.mainloop()
print(selectedletter)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.