【问题标题】:Turtle Graphics path using a string使用字符串的海龟图形路径
【发布时间】: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


【解决方案1】:

从您的 cmets 来看,我猜(这很糟糕,因为您应该对此提供更多详细信息)您希望当字母为“L”时,乌龟会根据“角度”向左转并走“步” ”。

因此,在这种情况下,您错过了向前走,这是正确的补充:

if i == 'L':
    t.left(angle)
    t.forward(step)

if i == 'R':
    t.right(angle)
    t.forward(step)

PS:无论如何,你发布的两个版本对我来说都是一样的!

【讨论】:

  • 不,那是我不想要的。无论字母是“F”、“L”和“R”是什么,它都会向前移动海龟,然后在向前移动后执行“F”、“L”或“R”操作。我不希望它每次都向前推进。你知道为什么它对我不起作用吗?
  • 当我使用我的 string = "FLR" 时,我得到了这个:prnt.sc/lmbbho 而当我以另一种方式执行时,我得到了这个输出,它们对我来说不一样:prnt.sc/lmbbj0 - 在执行“F”、“L”或“R”移动之前,每次使用它都会让乌龟向前移动,我不希望它每次都向前移动。不知道为什么会这样。有什么想法吗?
  • 不客气!很高兴我以某种方式提供了帮助。现在我明白了问题出在条件 if i == "F" 或 "E" 中,因为它始终为真,而“E”作为条件始终为真。
【解决方案2】:

我通过更改解决了问题

if i == 'F' or 'E':

if i in ['F', 'E']:

现在它可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-30
    • 2020-05-11
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2012-05-17
    • 2017-06-06
    相关资源
    最近更新 更多