【发布时间】:2018-11-24 17:29:29
【问题描述】:
编辑:我设法修复它。
...
我对 Python 不太了解,但我正在尝试编写一个函数,该函数使用 Python 的 Turtle Graphics 根据字符串中的字符绘制一条简单的路径。
因此,例如,如果 string = "FRRL" 那么海龟应该向前、向右、向右、向左移动。
当我运行这段代码时:
import turtle
step = 100
angle = 90
t = turtle.Turtle()
t.forward(step)
t.left(angle)
t.right(angle)
turtle.done()
它提供了与我在下面尝试制作的输出不同的输出:
import turtle
t = turtle.Turtle()
S = "FLR"
step = 100
angle = 90
for i in S:
if i == 'F' or 'E':
t.forward(step)
if i == 'L':
t.left(angle)
if i == 'R':
t.right(angle)
turtle.done()
代码运行,但似乎在这个代码中,它将海龟移动到它所面对的方向(我猜是向前)在 if i == '...': t....(angle/ step) 告诉它去做。因此,例如,如果 i == 'R',它会先将其向前移动,然后将其向右转动 90 度,而不是仅仅转动它 - i == 'F' 和 i == 'L' 相同.在执行我想要的海龟移动之前,它首先将它们全部向前移动。
我该如何解决这个问题?谢谢。
【问题讨论】:
-
对我来说,你的第二个代码工作得很好
-
@TobiasWilfert 代码运行,但绘制的内容与第一个不同,所以我认为它不正确?对我来说,它总是先向前移动,然后再进行我想要的海龟移动。
-
嗯,它会检查 S 中的任何 'char' 并且第一个字符是 F,所以它向前移动然后左右转动。
-
请考虑添加 2 张图片,因为对我来说这两个代码给出的结果完全相同。
-
@TobiasWilfert 这是我使用 string = "FLR" 时得到的结果:prnt.sc/lmbbho,这是我使用其他方式时得到的结果:prnt.sc/lmbbj0 - 当我使用string 它总是先为我向前移动,然后在先向前移动后执行“F”“L”或“L”,我不知道为什么,我不希望它每次都向前移动。任何想法为什么我没有得到相同的输出?
标签: python