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为红色,fill_color为蓝色和pensize 3.它保持正常。知道如何获得这些颜色吗?如何使该功能从最后一行读取那些颜色?提前谢谢。
答案 0 :(得分:1)
在前两次调用strip
时,删除字符串参数并删除整行strip
:
p = pen_color.strip()
pen_color(p)
s = fill_color.strip()
fill_color(s)
a = int(a)
pensize(a)
此代码块必须在真实绘图完成之前,直接在def rectangle...
答案 1 :(得分: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()