0
from turtle import *

reset()
setworldcoordinates(0, 500, 600, 0)

def rectangle(a, b, c, d, pen_color, fill_color, pensize):
    up()
    setpos (a,b)
    down()
    fd (c-a)
    left(90)
    fd(d-b)
    left (90)
    fd (c-a)
    left (90)
    fd (d-b)
    left(90)

    p = pen_color.strip("pen_color=")
    pen_color(p)
    s = fill_color.strip("fill_color=")
    fill_color(värv2)
    a = pensize.strip("pensize=")
    a = int(a) 
    pensize(a)


rectangle(10,10,200,100, pen_color="red", fill_color="blue", pensize=3)

问题是我无法在最后一行获得这些颜色。如果我启动程序,它不会使 pen_color red 和 fill_color blue 和 pensize 3。它保持正常。知道如何使这些颜色正确吗?如何使该功能从最后一行读取这些颜色?先感谢您。

4

2 回答 2

1

在前两个调用中strip删除字符串参数并使用最后一个删除整行strip

p = pen_color.strip()
pen_color(p)
s = fill_color.strip()
fill_color(s)
a = int(a) 
pensize(a)

此代码块必须在实际绘图完成之前,直接在def rectangle...

于 2012-10-11T20:48:54.477 回答
0

这个问题似乎归结为两个问题:对 OP 的误解,即当您传递命名参数时,您必须以某种方式剥离名称;通配符导入海龟然后使用匹配海龟函数名称和/或不正确海龟方法名称的变量的 OP 部分的设计错误。修改后的代码:

from turtle import *

setworldcoordinates(0, 500, 600, 0)

def rectangle(a, b, c, d, pen_color, fill_color, pen_size):
    pencolor(pen_color)
    fillcolor(fill_color)
    pensize(pen_size)

    up()
    setpos(a, b)
    down()

    begin_fill()
    fd(c - a)
    left(90)
    fd(d - b)
    left(90)
    fd(c - a)
    left(90)
    fd(d - b)
    end_fill()

    left(90)

rectangle(10, 10, 200, 100, pen_color="red", fill_color="blue", pen_size=3)

mainloop()
于 2019-01-14T23:29:16.847 回答