网上找的画彩虹运行不了

问题遇到的现象和发生背景

网上找的画彩虹,本人不是专业编程,多年一直在坚持学编程,10多年来一直坚持,还请看到帮忙看下,带一下

用代码块功能插入代码,请勿粘贴截图

import turtle

q = turtle.pen()
turtle.bgcolor('black')
sides = 7
colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple']
for x in range(360):
q.speed(35)
q.pencolor(colors([x % sides]))
q.forward(x * 3 / sides + x)
q.left(360 / sides + 1)
q.width(x * sides / 200)

运行结果及报错内容

C:\Users\admin\AppData\Local\Programs\Python\Python36\python.exe D:/Python/TestAPP/test彩虹.py
Traceback (most recent call last):
File "D:/Python/TestAPP/test彩虹.py", line 8, in
q.speed(35)
AttributeError: 'dict' object has no attribute 'speed'

Process finished with exit code 1

我的解答思路和尝试过的方法

尝试多次运行不出来

我想要达到的结果

需要运行结果

import turtle as t
#q = t.pen()
t.bgcolor('black')
sides = 7
colors = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple']
t.speed(35)
t.begin_fill()
for x in range(360):
n = x % sides
t.pencolor(colors[n])
t.forward(x * 3 / sides + x)
t.left(360 / sides + 1)
t.width(x * sides / 200)

#这样写也可以摘至网友,但是不是自己想要写法的样子。

#-*- coding:utf-8 –*-
from turtle import *

def HSB2RGB(hues):
 hues = hues * 3.59 #100转成359范围
 rgb=[0.0,0.0,0.0]
 i = int(hues/60)%6
 f = hues/60 -i
 if i == 0:
  rgb[0] = 1; rgb[1] = f; rgb[2] = 0
 elif i == 1:
  rgb[0] = 1-f; rgb[1] = 1; rgb[2] = 0
 elif i == 2:
  rgb[0] = 0; rgb[1] = 1; rgb[2] = f
 elif i == 3:
  rgb[0] = 0; rgb[1] = 1-f; rgb[2] = 1
 elif i == 4:
  rgb[0] = f; rgb[1] = 0; rgb[2] = 1
 elif i == 5:
  rgb[0] = 1; rgb[1] = 0; rgb[2] = 1-f
 return rgb

def rainbow():
 hues = 0.0
 color(1,0,0)
 #绘制彩虹
 hideturtle()
 speed(100)
 pensize(3)
 penup()
 goto(-400,-300)
 pendown()
 right(110)
 for i in range (100):
  circle(1000)
  right(0.13)
  hues = hues + 1
  rgb = HSB2RGB(hues)
  color(rgb[0],rgb[1],rgb[2]) 
 penup()

def main():
 setup(800, 600, 0, 0)
 bgcolor((0.8, 0.8, 1.0))
 tracer(False)
 rainbow()
 #输出文字
 tracer(False)
 goto(100,-100)
 pendown()
 color("red")
 write("彩虹桥",align="center",
   font=("Script MT Bold", 80, "bold"))
 tracer(True)

 mainloop()

if __name__ == "__main__":
 main()