Python 乌龟绘制不正确
Python Turtle Not Drawing Correctly
不久前,我制作了这个程序来绘制一个旗帜,最近我尝试 运行 它但由于某种原因它没有工作,即使它是我最初编写它的时候。条纹画得很好,但是当涉及到蓝色方块和星星时,海龟指针不会移动到任何地方。我正在使用 python 2.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)
这是你的问题:
I'm using python 2.7.11
由于 Python 2 和 Python 3 中除法运算符的工作方式不同,因此只有 运行 in Python3 时该程序才能正常运行。证明:
在 Python2 中,第 t运行 类别:3 / 2 => 1
在 Python3 中,除法总是产生一个浮点数:3 / 2 => 1.5
只需 运行 您在 Python3 中的代码即可。
不久前,我制作了这个程序来绘制一个旗帜,最近我尝试 运行 它但由于某种原因它没有工作,即使它是我最初编写它的时候。条纹画得很好,但是当涉及到蓝色方块和星星时,海龟指针不会移动到任何地方。我正在使用 python 2.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)
这是你的问题:
I'm using python 2.7.11
由于 Python 2 和 Python 3 中除法运算符的工作方式不同,因此只有 运行 in Python3 时该程序才能正常运行。证明:
在 Python2 中,第 t运行 类别:3 / 2 => 1
在 Python3 中,除法总是产生一个浮点数:3 / 2 => 1.5
只需 运行 您在 Python3 中的代码即可。