Unconquerable p 2021-11-18 18:43 采纳率: 90.9%
浏览 143
已结题

#Python#tkinter#报错:TypeError: 'float' object is not subscriptable,求解决!

错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\86158\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1885, in __call__
    return self.func(*args)
  File "C:\Users\86158\AppData\Local\Programs\Python\Python39\lib\turtle.py", line 687, in eventfun
    fun()
  File "C:\Users\86158\Desktop\MEME\chess\board.py", line 210, in <lambda>
    turtle.onkey(lambda:got(),"Right")
  File "C:\Users\86158\Desktop\MEME\chess\board.py", line 200, in got
    wgo[times].goto(int(wpsss[times]),int(wpsss[times][1]))
TypeError: 'float' object is not subscriptable

程序:


#coding=utf-8
import turtle
#a=int(input("xxx:"))
a=50
b=a*8
t=turtle.Pen()
t.hideturtle()
t.speed(0)
t.penup()
t.goto(-b/2,-b/2)
t.pendown()
for i in range(4):
    t.forward(b)
    t.left(90)
t.penup()
for i in range(8):
    t.goto(-b/2+a*i,-b/2)
    t.setheading(90)
    t.pendown()
    t.forward(b)
    t.backward(b)
    t.penup()
t.goto(b/2,b/2-a)
t.setheading(0)
'''
for i in range(1,9):
    for j in range(1,9):
        t.pendown()
        #t.color("black", "black")
        t.begin_fill()
        if (i+j)%2==0:
            t.fillcolor("gray")
        else:
            t.fillcolor("white")
        for x in range(5):
            t.backward(a)
            t.right(90)
        t.left(90)
        t.end_fill()
    t.penup()
    t.goto(b/2,b/2-a-a*i)
'''
t.hideturtle()
turtle.register_shape("./pics/wp.gif")
wpa=turtle.Pen()
wpb=turtle.Pen()
wpc=turtle.Pen()
wpd=turtle.Pen()
wpe=turtle.Pen()
wpf=turtle.Pen()
wpg=turtle.Pen()
wph=turtle.Pen()
sets=[wpa,wpb,wpc,wpd,wpe,wpf,wpg,wph]
for i in range(len(sets)):
    sets[i].shape("./pics/wp.gif")
    sets[i].penup()
    sets[i].goto(-b/2+a/2+a*(i),-b/2+a/2+a)
bpa=turtle.Pen()
bpb=turtle.Pen()
bpc=turtle.Pen()
bpd=turtle.Pen()
bpe=turtle.Pen()
bpf=turtle.Pen()
bpg=turtle.Pen()
bph=turtle.Pen()
bsets=[bpa,bpb,bpc,bpd,bpe,bpf,bpg,bph]
turtle.register_shape("./pics/bp3.gif")
for i in range(len(bsets)):
    bsets[i].shape("./pics/bp3.gif")
    bsets[i].penup()
    bsets[i].goto(-b/2+a/2+a*(i),b/2-a/2-a)
bra=turtle.Pen()
brh=turtle.Pen()
turtle.register_shape("./pics/br.gif")
bra.shape("./pics/br.gif"); brh.shape("./pics/br.gif")
bra.penup(); brh.penup()
bra.goto(-b/2+a/2,b/2-a/2);brh.goto(b/2-a/2,b/2-a/2)

wra=turtle.Pen()
wrh=turtle.Pen()
turtle.register_shape("./pics/wr.gif")
wra.shape("./pics/wr.gif"); wrh.shape("./pics/wr.gif")
wra.penup(); wrh.penup()
wra.goto(-b/2+a/2,-b/2+a/2);wrh.goto(b/2-a/2,-b/2+a/2)

bnb=turtle.Pen()
bng=turtle.Pen()
turtle.register_shape("./pics/bn.gif")
bnb.shape("./pics/bn.gif");bng.shape("./pics/bn.gif")
bnb.penup();bng.penup()
bnb.goto(-b/2+a/2+a,b/2-a/2);bng.goto(b/2-a/2-a,b/2-a/2)

wnb=turtle.Pen()
wng=turtle.Pen()
turtle.register_shape("./pics/wn.gif")
wnb.shape("./pics/wn.gif");wng.shape("./pics/wn.gif")
wnb.penup();wng.penup()
wnb.goto(-b/2+a/2+a,-b/2+a/2);wng.goto(b/2-a/2-a,-b/2+a/2)

bbc=turtle.Pen()
bbf=turtle.Pen()
turtle.register_shape("./pics/bb.gif")
bbc.shape("./pics/bb.gif");bbf.shape("./pics/bb.gif")
bbc.penup();bbf.penup()
bbc.goto(-b/2+a/2+a*2,b/2-a/2);bbf.goto(b/2-a/2-a*2,b/2-a/2)

wbc=turtle.Pen()
wbf=turtle.Pen()
turtle.register_shape("./pics/wb.gif")
wbc.shape("./pics/wb.gif");wbf.shape("./pics/wb.gif")
wbc.penup();wbf.penup()
wbc.goto(-b/2+a/2+a*2,-b/2+a/2);wbf.goto(b/2-a/2-a*2,-b/2+a/2)

bq=turtle.Pen()
turtle.register_shape("./pics/bq.gif")
bq.shape("./pics/bq.gif")
bq.penup()
bq.goto(-b/2+a/2+a*3,b/2-a/2)

wq=turtle.Pen()
turtle.register_shape("./pics/wq.gif")
wq.shape("./pics/wq.gif")
wq.penup()
wq.goto(-b/2+a/2+a*3,-b/2+a/2)

bk=turtle.Pen()
turtle.register_shape("./pics/bk.gif")
bk.shape("./pics/bk.gif")
bk.penup()
bk.goto(-b/2+a/2+a*4,b/2-a/2)

wk=turtle.Pen()
turtle.register_shape("./pics/wk.gif")
wk.shape("./pics/wk.gif")
wk.penup()
wk.goto(-b/2+a/2+a*4,-b/2+a/2)

qp="Pe2-e4 Pe7-e6"

d=qp.strip("\n\t\r ").split()
print(d)
white=[]
black=[]
swwh=0
for i in d:
    if swwh%2==0:
        white+=i.strip("QBPNKR").split("-")
    else:
        black+=i.strip("QBPNKR").split("-")
    swwh+=1
print(white,black)
keys=[]
values=[]
for i in range(8):
    for j in range(8):
        g=chr(97+j)+str(i+1)
        keys.append(g)
        values.append((-b/2+a/2+a*j,-b/2+a/2+a*i))
pos=dict(zip(keys,values))
print(pos)
wpss=[]
bpss=[]
wpsss=[]
bpsss=[]
wgo=[]
bgo=[]
print(1)
for i in white:
    wpss.append(pos[i])
for j in black:
    bpss.append(pos[j])
ij=0
ji=0
for i in wpss:
    if ij % 2 != 0:
        wpsss=i
    ij+=1
for j in bpss:
    if ji%2!=0:
        bpsss=j
    ji+=1
print(wpsss,bpsss)
allof=sets+bsets+[wnb,wng,wra,wrh,wbc,wbf,wq,wk,bnb,bng,bra,brh,bbc,bbf,bq,bk]
for i in range(len(allof)):
    tx,ty=allof[i].pos()
    tset=(tx,ty)
    if tset in wpss:
        wgo.append(allof[i])
    elif tset in bpss:
        bgo.append(allof[i])
    #print(tuple(allof[i].position()),wpss[0],bpss[0])

print(len(wgo),len(bgo))
times=0
def got():
    global times
    global wgo,wpsss
    global bgo,bpsss
    wgo[times].pendown()
    wgo[times].goto(int(wpsss[times]),int(wpsss[times][1]))
    wgo[times].penup()
    bgo[times].goto(int(bpsss[times][0]),int(bpsss[times][1]))
    wgo[times].clear()


    print(times)
    times=times+1


turtle.onkey(lambda:got(),"Right")

turtle.mainloop()
  • 写回答

1条回答 默认 最新

  • Unconquerable p 2021-11-18 18:45
    关注

    EEEEEEEEEE……注意:201行处代码应为:

        wgo[times].goto(int(wpsss[times][0]),int(wpsss[times][1]))
    

    忘打上了~~~
    !!!但是,这跟报错无关!!!

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 创建了问题 11月18日

悬赏问题

  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?