我正在弄乱python 2.7中带有循环的turtle导入,我只是看到屏幕闪烁,程序退出了。
这是我的代码:
import turtle
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
dColors = dict(enumerate(colors))
def circleOfShapes(aTurtle):
edges = 3
radius = 100
for i in range(5):
for k in range(360 / 5):
aTurtle.color(dColors.get(i))
aTurtle.circle(radius, None, edges)
aTurtle.right(5)
edges += 1
radius -= 10
turt = turtle.Turtle()
turt.shape("arrow")
window = turtle.Screen()
window.bgcolor("white")
window.exitonclick()
circleOfShapes(turt)
这只是我想为我的孩子做一些有趣的事情,并使他对小时候的编程感兴趣,就像我希望的那样。谢谢您的帮助。
最佳答案
这是在Python 2和Python 3上均可运行的经过稍微修改的代码版本。
import turtle
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
dColors = dict(enumerate(colors))
def circleOfShapes(aTurtle):
edges = 3
radius = 100
for i in range(5):
for k in range(360 // 5):
aTurtle.color(dColors.get(i))
aTurtle.circle(radius, None, edges)
aTurtle.right(5)
edges += 1
radius -= 10
turt = turtle.Turtle()
turt.shape("arrow")
#turt.hideturtle()
#turt.speed(0)
window = turtle.Screen()
window.bgcolor("white")
circleOfShapes(turt)
window.exitonclick()
您可以通过取消注释
#turt.hideturtle()
#turt.speed(0)
中的一个或两个来加快速度我将内部
range
调用中的除法更改为360 // 5
以确保其返回整数。这使得代码与Python 2和Python 3更加兼容。在Python 2中,如果
/
除运算符的操作数均为int
,则将返回int
;在Python 3中,它将始终返回float
。因此,当需要int
商时,最好使用//
底数除法运算符。Python 2
range
将接受float
arg,但是会给出弃用警告。在Python 3中,它只会引发一个错误。关于python - 我在弄乱python 2.7中的带有循环的 turtle 导入并且 turtle 不会移动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47106291/