我正在使用循环来解决python 2.7中的乌龟导入问题,我只看到屏幕闪烁并退出程序。 这是我的代码:
/\d{2}(:\d{2}(:\d{2})?)?/.match('10').to_a.compact
这只是我试图为我的孩子制作一些很酷的东西,并让他在早年就像我希望的那样对编程感兴趣。谢谢你的帮助。
答案 0 :(得分:1)
对我来说代码运行正常。唯一的问题是在你的for循环中你试图用第11行中的float循环。你需要使用一个整数。你可以投整它。那应该解决它。希望这会有所帮助。
编辑:代码的另一个问题是 window.exitonclick()
删除或注释
答案 1 :(得分:0)
这是在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中,它只会引发错误。