我是初学程序员,我想通过游戏来学习。我正在尝试与用户点击按钮(使用Tkinter制作)在战斗机周围放置战舰。当我点击按钮时,我得到一个错误说明如下。如何在字典中选择正确的按钮= {}?错误说:
追踪(最近一次通话): 文件“C:\ Python Codes \ Battleship.py”,第29行,in 选择() TypeError:choice()只需要2个参数(给定0)
以下是我使用的代码:
from Tkinter import *
import Tkinter as tk
screen = tk.Tk(className = "Battle Ship Game" )
screen.geometry("300x300")
screen["bg"] = "white"
line1= list()
def choice(x,y) :
global choises
choises = {}
choises[x] = y
print choises
def buildaboard1(screen) :
x = 20
for n in range(0,10) :
y = 20
for i in range(0,10) :
line1.append(tk.Button(screen ))
line1[-1]["command"] = (lambda n : choice (x , y))
line1[-1].place( x = x , y = y+20 , height = 20 , width = 20 )
y = y+20
x = x +20
buildaboard1(screen)
choice()
screen.mainloop()
答案 0 :(得分:1)
这种方式Tkinter
一次将x
和y
的值分配给a
和b
。
按下按钮时choice()
可以使用它。
line1[-1]["command"] = (lambda a=x, b=y: choice (a , b))
这种方式Button
想要在点击它时从x
和y
获取值
但是x
和y
不存在。
line1[-1]["command"] = (lambda: choice (x , y))