Python 为什么当我从列表中追加时,我会从我不知道的代码行中收到错误';我没有写信

Python 为什么当我从列表中追加时,我会从我不知道的代码行中收到错误';我没有写信,python,Python,它一直在说262中有错误,然后是我没有编写的高得离谱的代码行 这是我的代码,有人可以添加一些见解吗 import turtle as trtl import random as rand # list to change shape and color final_shape = [] final_color = [] color_list = ["red", "blue", "green", "orange",

它一直在说262中有错误,然后是我没有编写的高得离谱的代码行

这是我的代码,有人可以添加一些见解吗

import turtle as trtl
import random as rand

# list to change shape and color
final_shape = []
final_color = []
color_list = ["red", "blue", "green", "orange", "purple", "gold"]
shape_list = ["arrow", "turtle", "circle", "square", "triangle", "classic"]
final_shape.append(rand.choice(shape_list))

# dot game with timer score and dot

#-----game configuration----

leaderboard_file_name = "a122_leaderboard.txt"
leader_names_list = []
leader_scores_list = []
player_name = input("please enter your name")
x = 0
y = 0
score = 0
font_setup = ("Arial", 20, "normal")
timer = 30
counter_interval = 1000  
timer_up = False

#-----initialize turtle-----

spot = trtl.Turtle()
spot.shape("square")
spot.pensize(5)
spot.turtlesize(.5)
spot.color("blue")
spot.penup()

#-------turtle 2---------

score_writer = trtl.Turtle()
score_writer.hideturtle()
score_writer.penup()
score_writer.goto(-250,250)

#------turtle 3---------

counter = trtl.Turtle()
counter.hideturtle()
counter.penup()
counter.goto(250,250)

#-----game functions--------

spot.onclick(x)

def spot_clicked(x,y):
    score_writer.clear()
    score_writer.write(score, font=font_setup)
    change_position()
    update_socre()

def update_socre():
    global score
    score += 1
    print(score)

def change_position():
    newx = rand.randint(-200,200)
    newy = rand.randint(-150,150)
    spot.goto(newx,newy)

def countdown():
    global timer, timer_up
    counter.clear()
    if timer <= 0:
      counter.write("Time's Up", font=font_setup)
      timer_up = True
      spot.hideturtle()
    else:
      counter.write("Timer: " + str(timer), font=font_setup)
      timer -= 1
      counter.getscreen().ontimer(countdown, counter_interval)
  if timer <= 0:
      counter.write("Time's Up", font=font_setup)
      timer_up = True
    manage_leaderboard()

def manage_leaderboard(): 
  global leader_scores_list
  global leader_names_list
  global score
  global spot

  lb.load_leaderboard(leaderboard_file_name, leader_names_list, leader_scores_list)

  if (len(leader_scores_list) < 5 or score > leader_scores_list[4]):
    lb.update_leaderboard(leaderboard_file_name, leader_names_list, leader_scores_list, player_name, score)
    lb.draw_leaderboard(leader_names_list, leader_scores_list, True, spot, score)
  else:
    lb.draw_leaderboard(leader_names_list, leader_scores_list, False, spot, score)
#makes maze and runner

# Configuration variables
num_sides = 37
path_width = 15
door_len = 15
wall_length = 30
barrier_len = 30
mazerunner = trtl.Turtle(shape = "turtle")
mazerunner.turtlesize(0.25)
mazerunner.hideturtle()
mazerunner.penup()
mazerunner.goto(-10,-10)
mazerunner.pendown()

# config maze
maze_drawer = trtl.Turtle()
maze_drawer.pensize(3)
print(color_list)
maze_drawer.pencolor(final_color.append(rand.choice(color_list)))
maze_drawer.speed(0)

def drawdoor(x):
    maze_drawer.forward(x)
    maze_drawer.penup()
    maze_drawer.forward(door_len)
    maze_drawer.pendown()

def drawall(y):
    maze_drawer.forward(y)
    #make the barrier
    maze_drawer.left(90)
    maze_drawer.forward(30)
    maze_drawer.back(30)
    maze_drawer.right(90)

def runnerdown():
    mazerunner.setheading(270)
    mazerunner.forward(4)

def runnerup():
    mazerunner.setheading(90)
    mazerunner.forward(4)

def runnerleft():
    mazerunner.setheading(180)
    mazerunner.forward(4)

def runneright():
    mazerunner.setheading(0)
    mazerunner.forward(4)

# maze maker

for i in range(num_sides):
    maze_drawer.left(90)
    if i < 1:
        maze_drawer.forward(wall_length)
    elif i < 6:
        x = rand.randint(0,wall_length - 15)
        drawdoor(x)
        maze_drawer.forward(wall_length - x - door_len)
        wall_length += 15
    else:
        if rand.randint(0,1) == 1:
            x = rand.randint(0,wall_length - 15)
            drawdoor(x)
            y = rand.randint(0,wall_length - 15 - x)
            drawall(y)
            maze_drawer.forward(wall_length - y - x - door_len)
            wall_length += 15
        else:
            y = rand.randint(0,wall_length - door_len)
            drawall(y)
            x = rand.randint(0,wall_length - door_len - y)
            drawdoor(x)
            maze_drawer.forward(wall_length - y - x - door_len)
            wall_length += 15

wn = trtl.Screen()
wn.onkeypress(runnerdown, "s")
wn.onkeypress(runnerup, "w")
wn.onkeypress(runnerleft, "a")
wn.onkeypress(runneright, "d")
spot.onclick(spot_clicked)
wn.listen()
wn.ontimer(countdown, counter_interval)
wn.mainloop()
将海龟作为trtl导入
随机导入为rand
#列表以更改形状和颜色
最终形状=[]
最终颜色=[]
颜色列表=[“红色”、“蓝色”、“绿色”、“橙色”、“紫色”、“金色”]
形状列表=[“箭头”、“海龟”、“圆”、“正方形”、“三角形”、“经典”]
最终形状追加(随机选择(形状列表))
#带计时器分数和点的点游戏
#-----游戏配置----
排行榜\u文件\u name=“a122\u leadboard.txt”
领导者名称列表=[]
领导者得分列表=[]
玩家名称=输入(“请输入您的姓名”)
x=0
y=0
分数=0
字体设置=(“Arial”,20,“正常”)
计时器=30
计数器间隔=1000
计时器向上=错误
#-----初始化海龟-----
spot=trtl.Turtle()
斑点形状(“正方形”)
现货。养老金(5)
斑点。套衫尺寸(.5)
专色(“蓝色”)
spot.penup()
#-------海龟2---------
score\u writer=trtl.Turtle()
score_writer.hideturtle()
乐谱编剧
乐谱编剧转到(-250250)
#------海龟3---------
counter=trtl.Turtle()
柜台
counter.penup()
转到柜台(250250)
#-----游戏功能--------
spot.onclick(x)
def spot_单击(x,y):
记分器
score\u writer.write(score,font=font\u设置)
更改位置()
更新_socre()
def update_socre():
全球得分
分数+=1
打印(分数)
def更改位置():
newx=rand.randint(-200200)
newy=rand.randint(-150150)
spot.goto(newx,newy)
def倒计时():
全局定时器,定时器启动
计数器清除()

如果计时器我认为可以通过将第262行
迷宫抽屉.pencolor(final\u color.append(rand.choice(color\u list))
更改为
迷宫抽屉.pencolor(rand.choice(color\u list))
(在有换行的旧代码中)来解决这个问题,在我删除换行的新代码中,直接回答您的问题是第118行

它一直在说262中有错误,然后是我没有编写的高得离谱的代码行

你所看到的是一场灾难。Python不仅试图告诉您程序中的错误发生在哪里,而且还试图告诉您它是如何达到这一点的。因为您使用的是turtle库,所以您编写的代码的路径是相当间接的,这就是为什么您看到这么多没有编写的行的原因


下次当您遇到不理解的错误(相信我,它会发生)并且希望获得帮助时,向帮助者提供堆栈跟踪可以让他们更容易地提供帮助。

什么是“它”?你看到了什么错误?您是如何运行此代码的?我认为您不太了解堆栈溢出的工作原理-我们不需要看到数百行不需要复制问题的代码,我们确实需要看到实际的错误消息。查看此链接,您能否澄清您到底想做什么,分享所需的输出所有空行都有什么问题,为什么要让它更难阅读?与其只是参考行号,不如有“我建议将这行更改为这行”这样的内容,这样我们就可以很容易地看到更改的内容,而不必让行号太重要了。@RobWatts我编辑了我的答案