我正在使用带有 tkinter 和 tcl 8.6 版本的 Python 3.9,因此根据2010 年 stackoverflow 上的答案,我应该能够绘制旋转文本。实际上我可以在 tkinter 中绘制旋转文本,因此我尝试使用海龟模块创建旋转文本:
import turtle
txt = ' '
tt = turtle.Turtle()
tt.write(txt, angle=-45)
Run Code Online (Sandbox Code Playgroud)
但收到错误消息:TypeError: write() got an unexpected keyword argument 'angle'
这意味着海龟模块尚不支持文本旋转功能。
这就提出了一个问题:是否有人知道一个补丁/修复程序可以使turtle模块利用Python 3自3.7.2版本以来提供的文本旋转功能?
所以,我正在尝试学习 Python,每次我在这里发布问题时,都感觉像是屈服了......
我正在尝试制作我自己的turtle.Turtle类。
import turtle
class TurtleGTX(turtle.Turtle):
"""My own version of turtle"""
def __init__(self):
pass
my_turtle = TurtleGTX()
my_turtle.forward(10)
Run Code Online (Sandbox Code Playgroud)
提供回溯:AttributeError: 'TurtleGTX' object has no attribute '_position'。然后我学到的是一个“私有变量”,根据官方的python教程,我可以在我的子类TurtleGTX中修改/覆盖。如何用一个像乌龟一样大的程序来做到这一点似乎相当困难,这意味着我缺少一个更简单的问题解决方案。最后我学到了,这就是重点,但我仍然希望由社区运行它,看看是否有一种优雅的方式来创建一个turtle.Turtle的子类。(下一步是让你的乌龟表现出与标准乌龟不同的行为)
所以下面的评论让我觉得也许我可以这样做:
import turtle
class TurtleGTX(turtle.Turtle):
"""My own version of turtle"""
my_turtle = TurtleGTX()
my_turtle.forward(100)
Run Code Online (Sandbox Code Playgroud)
哪个实际运行!现在我要看看这会把我引向何方……有些东西告诉我,我可能已经向前走了两步,因为这意味着我将无法在我的子类上初始化任何东西……
我有一个练习,我必须用Python龟画很多圈子.我已经设置speed(0)
并且我正在使用:
from turtle import*
speed(0)
i=0
while i < 360:
forward(1)
left(1)
i+=1
Run Code Online (Sandbox Code Playgroud)
画圆圈.这需要很长时间.有没有更快的方法?
我试图从维基百科制作这个分形植物(例7).然而,即使我使用相同的规则,我最终会看到更像树的东西.这是代码:
def fraktal_plante(padde, depth):
Xmerke(padde, depth-1) # X
def Xmerke(padde, depth):
if depth > 0:
padde.forward(12)
padde.right(25)
pos1 = padde.position()
head1 = padde.heading()
Xmerke(padde, depth-1)
padde.up()
padde.goto(pos1)
padde.setheading(head1)
padde.down()
padde.left(25)
Xmerke(padde, depth-1)
padde.up()
padde.goto(pos1)
padde.setheading(head1)
padde.down()
padde.left(25)
padde.forward(12)
pos2 = padde.position()
head2 = padde.heading()
padde.left(25)
padde.forward(12)
Xmerke(padde, depth-1)
padde.up()
padde.goto(pos2)
padde.setheading(head2)
padde.down()
padde.right(25)
Xmerke(padde, depth-1)
def Fmerke (padde, depth):
if depth > 0:
padde.forward(12)
padde.forward(12)
Run Code Online (Sandbox Code Playgroud)
你能帮助我吗?我是python的新手,所以请以简单的方式解释!
我发现python的乌龟实现速度非常慢.我预计会有一些延迟,但不会等待相对简单的分形(5次迭代的Koch曲线).
即使设置后turtle.speed(0)
它仍然很慢.也许有一个错误,因为它不像文档中声称的那样瞬间?
这个答案建议通过隐藏窗口来重新实施海龟.类似的问题没有答案.我错过了什么,或者正在重新实施的方式去?
这是我的精简代码(l系统的创建几乎是瞬间的):
import turtle
def l_system(V, w, P, n):
current = w
for i in range(n):
current = [P[x] if x in P else x for x in list(current)]
current = ''.join(current)
return current
def run_turtle(var, start, rules, iters, angle, size, scale):
terry = turtle.Turtle()
terry.pensize(1)
terry.pencolor("blue")
terry.speed(0)
dist = size / ((iters + 1) ** scale)
positions = []
angles = []
instructions = l_system(var, start, rules, iters)
for instr in …
Run Code Online (Sandbox Code Playgroud) 我用python做了一个画乌龟的程序,但是我画乌龟的画布不够大。我正在尝试使这个画布更大,以便我可以在页面上容纳更多内容并使内容更大。我正在trinket.io 中对此进行编程。
我想写一个turtle
程序,你点击哪里,乌龟就会去哪里。到目前为止,我有这个:
from turtle import *
screen = Screen()
turtle = Turtle()
screen.onscreenclick(turtle.goto)
Run Code Online (Sandbox Code Playgroud)
但问题是乌龟对象只是保持面向同一方向。我想以某种方式让它朝着它要去的地方看。我怎样才能做到这一点?
我正在尝试将Turtle模块集成到我用TKInter创建的界面中,目前我有一个画布,我希望乌龟能够绘制到这个界面(参见示例1).然而,我迷失了如何得到它的吸引力.
可以在没有表达式的Python中使用while循环吗?我知道在其他语言中你可以做类似的事情:
while(flag) {};
Run Code Online (Sandbox Code Playgroud)
我试图在Python中做类似的事情,但找不到答案.这是我到目前为止:
import turtle
from random import randrange
def is_in_screen(t, w): #CHECKS TO SEE IF STILL IN SCREEN
flag = True
r = w.window_width() / 2
l = r * -1
u = w.window_height() / 2
d = u * -1
x_cor = t.xcor()
y_cor = t.ycor()
if (x_cor < l or x_cor > r or y_cor < d or y_cor > u):
flag = False
return flag
def move_to(t, w): #MOVE IN RANDOM DIRECTION AND RANDOM DISTANCE …
Run Code Online (Sandbox Code Playgroud) 我是编程新手,我下载了Python,并使其在Visual Studio Code中运行。我在弄乱turtle模块及其功能。
这些函数本身可以工作,但pylint
会将其标记为错误,并说没有像我编写的代码那样的“成员”。
我将如何解决该错误?(我不想将其设置为“忽略”该问题,而是认识到我输入的代码是有效的并且来自于turtle模块)
python ×10
turtle-graphics ×10
python-3.x ×2
tkinter ×2
inheritance ×1
pylint ×1
size ×1
subclass ×1