Python 2.7 绘图不正确

Python 2.7 绘图不正确,python-2.7,drawing,turtle-graphics,Python 2.7,Drawing,Turtle Graphics,不久前,我制作了这个程序来绘制一个标志,最近我试着运行它,但由于某种原因,它不起作用,即使是在我最初编写它的时候。条纹画得很好,但当它指向蓝色正方形和星星时,海龟的指针不会移动。我正在使用Python2.7.11,但这是一年前写的,我想是的,这可能是它不工作的原因吗?我不记得我使用的是什么版本的python import turtle def draw_stripes(length, height, color): turtle.speed('fast') turtle.col

不久前,我制作了这个程序来绘制一个标志,最近我试着运行它,但由于某种原因,它不起作用,即使是在我最初编写它的时候。条纹画得很好,但当它指向蓝色正方形和星星时,海龟的指针不会移动。我正在使用Python2.7.11,但这是一年前写的,我想是的,这可能是它不工作的原因吗?我不记得我使用的是什么版本的python

import turtle

def draw_stripes(length, height, color):
    turtle.speed('fast')
    turtle.color(color)
    turtle.begin_fill()
    turtle.pendown()
    turtle.forward(length)
    turtle.left(90)
    turtle.forward(height)
    turtle.left(90)
    turtle.forward(length)
    turtle.left(90)
    turtle.forward(height)

    for i in range(0,6):
        turtle.penup()
        turtle.left(180)
        turtle.forward(height*2)
        turtle.pendown()
        turtle.right(90)
        turtle.forward(length)
        turtle.left(90)
        turtle.forward(height)
        turtle.left(90)
        turtle.forward(length)
        turtle.left(90)
        turtle.forward(height)

    turtle.end_fill()

def draw_canton(length, height, color):
    turtle.speed('fast')
    turtle.left(180)
    turtle.forward(height/13)
    turtle.color(color)
    turtle.begin_fill()
    turtle.right(90)
    turtle.pendown()
    turtle.forward(length*(2/5))
    turtle.right(90)
    turtle.forward(height*(7/13))
    turtle.right(90)
    turtle.forward(length*(2/5))
    turtle.right(90)
    turtle.forward(height*(7/13))
    turtle.end_fill()

def draw_star_row_six(length, height, size):
    turtle.speed('fast')
    turtle.right(90)
    turtle.forward(length)
    turtle.right(90)
    turtle.forward(length)
    turtle.right(180)
    turtle.forward(size)
    turtle.right(163)

    for i in range (6):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length*2)*6)
    turtle.left(90)
    turtle.forward(height*2)
    turtle.right(180)
    turtle.right(163)

    for i in range (6):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length*2)*6)
    turtle.left(90)
    turtle.forward(height*2)
    turtle.right(180)
    turtle.right(163)

    for i in range (6):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length*2)*6)
    turtle.left(90)
    turtle.forward(height*2)
    turtle.right(180)
    turtle.right(163)

    for i in range (6):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length*2)*6)
    turtle.left(90)
    turtle.forward(height*2)
    turtle.right(180)
    turtle.right(163)

    for i in range (6):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length * 2)*6)
    turtle.right(90)
    turtle.forward(height*7)

def draw_star_row_five(length, height, size):
    turtle.right(90)
    turtle.forward(length)
    turtle.right(73)

    for i in range (5):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length*2)*5)
    turtle.left(90)
    turtle.forward(height*2)
    turtle.right(180)
    turtle.right(163)

    for i in range (5):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length*2)*5)
    turtle.left(90)
    turtle.forward(height*2)
    turtle.right(180)
    turtle.right(163)

    for i in range (5):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.left(253)
    turtle.forward((length*2)*5)
    turtle.left(90)
    turtle.forward(height*2)
    turtle.right(180)
    turtle.right(163)

    for i in range (5):
        draw_star(size, 'white')
        turtle.left(73)
        turtle.forward(length*2)
        turtle.right(73)

    turtle.home()

def draw_star(size, color):
    turtle.color(color)
    turtle.begin_fill()
    turtle.pendown()

    for i in range(5):
        turtle.forward(size)
        turtle.right(144)

    turtle.end_fill()
    turtle.penup()

def get_color():
    return r,g,b



def draw_flag(height):
    turtle.speed('fast')
    turtle.setx(-150)
    turtle.color('black')
    turtle.pendown()
    turtle.forward(height*1.9)
    turtle.left(90)
    turtle.forward(height)
    turtle.left(90)
    turtle.forward(height*1.9)
    turtle.left(90)
    turtle.forward(height)
    turtle.penup()
    turtle.left(90)
    draw_stripes((height*1.9), height/13, 'red')
    draw_canton((height*1.9), height, 'blue')
    draw_star_row_six(((height*1.9)*(2/5))/12,(height*(7/13))/10, ((height/13)*(4/5))/2)
    draw_star_row_five(((height*1.9)*(2/5))/12,(height*(7/13))/10, ((height/13)*(4/5))/2)

height = float(input('Enter The Height of Your Flag: '))
draw_flag(height)
这是你的问题:

我正在使用python 2.7.11

由于除法运算符在Python2和Python3之间的工作方式不同,该程序只有在Python3中运行时才能正常工作。证明:

在Python2中,除法截断:
3/2=>1

在Python3中,除法总是产生一个浮点:
3/2=>1.5


只需在Python3中运行您的代码,它就会工作。

…或者,更好的是,只需在file@Gerrat:这是可行的,但我不会这么做,除非有什么原因需要在Python2中运行。我不会安装一个全新的Python版本,只是为了避免在程序中添加一行代码。他提到他正在使用Python2.7。@Gerrat:我想我忘了,对于一些人来说,安装新版本的Python需要的不仅仅是安装python3。如果这是一个一次性的脚本,那么是的,他不应该经历比他需要的更多的麻烦。@Gerrat我同意你的方式,因为我不想安装3。谢谢大家的帮助。