我在创建海龟代码时遇到了麻烦,用户可以决定海龟移动多远,然后他们希望它转动多少以及转动的速度
I have had trouble creating a turtle code that the user can decide how far the turtle moves then how much they want it to turn and how fast it goes
正如标题中提到的,我一直在尝试创建一个乌龟,用户可以输入他们希望乌龟移动多快,他们希望乌龟在转弯前前进多远以及他们想要多少乌龟在再次前进之前先转身。这是代码的第三阶段。
第一阶段允许人们选择它前进的数量,然后他们希望它通过它自己的代码转动多远,然后进行前进的距离和打开的数量,重复我用这段代码所做的。
import turtle
print ('Input the distance forward you want to go and the amount you want to turn, it will make a square by defalt')
while True:
turtle.forward(50)
turtle.left(90)
对于第二阶段,我这样做是为了让用户可以从代码内部输入向前的距离和转向的数量,我通过添加变量 d 和 t 来完成此操作,并让它们定义乌龟向前走了多远以及走了多少结果我用这段代码做到了
import turtle
d = input("How far forward: ")
t = input("How much do you want to turn: ")
while True:
turtle.forward(int(d))
turtle.left(int(t))
到目前为止,我的表现还不错,但我想做的事情要难得多,因为我直到现在才接触过乌龟,而且我似乎无法设置速度不管我如何更改代码,顺便说一句,我知道我现在的代码很糟糕,但我已经尝试了大约 4 天,所以我只是放弃了我尝试的最后一个代码,但我有一些更好的代码和一些比这个更糟糕
import turtle
e = int('0')
m = int('10')
f = int(input("How fast do you want to go: "))
d = input("How far forward: ")
t = input("How much do you want to turn: ")
if f < e:
int(f = input("How fast do you want to go: "))
elif f > m:
int(f = input("How fast do you want to go: "))
turtle.speed(int(f))
while True:
turtle.forward(int(d))
turtle.left(int(t))
任何帮助将不胜感激,所以我可以搁置这段代码,因为这只是我想做的事情,这样我就可以了解一些海龟的工作原理。
行:
int(f = input("How fast do you want to go: "))
应该是 f
的赋值,它会转换输入。不是作业的演员表
f = int(input("How fast do you want to go: "))
您可以强制用户输入一个范围内的值,方法是让他们保持在 while True
循环中,直到他们输入正确的值:
import turtle
MIN = 0
MAX = 10
while True:
f = int(input("How fast do you want to go [0,10]: "))
# If F is in the range of min and max, leave the loop
if MIN <= f <= MAX:
break
d = int(input("How far forward: "))
t = int(input("How much do you want to turn: "))
turtle.speed(f)
while True:
# d is the length variable, this was f
turtle.forward(d)
turtle.left(t)
我发现您的代码存在 5 个主要问题:
- 您没有实例化海龟对象。您正在做的只是导航 class 本身,这可能会带来一些奇怪的错误。创建海龟对象后,您将不再需要 while True 语句,如果没有要实现的 break 语句,这通常不是一个好主意,因为它确实会 运行 永远。
- 你的变量声明真的很难读,而且不必要地复杂化。注意:如果您只需要一次声明,则无需为其分配任何其他名称。
- 可以通过利用 or 运算符来简化 if 子句。
- 我不知道我是否做对了你的任务,但我认为你真的不需要 while 循环吗?如果是这样,您应该考虑在完全绘制正方形或矩形后立即断开。
- 除非使用海象运算符,否则不能在 int() 函数内部分配变量:=
import turtle
s = turtle.getscreen()
t = turtle.Turtle()
speed = -1
while speed < 0 or speed > 10:
speed = int(input('How fast do you want the turtle togo?'))
forward = int(input('How far forward?'))
left = int(input('How far to the left?'))
t.speed(speed)
t.forward(forward)
t.left(left)
没有测试代码,但总体思路应该已经有所帮助。干杯:)
正如标题中提到的,我一直在尝试创建一个乌龟,用户可以输入他们希望乌龟移动多快,他们希望乌龟在转弯前前进多远以及他们想要多少乌龟在再次前进之前先转身。这是代码的第三阶段。
第一阶段允许人们选择它前进的数量,然后他们希望它通过它自己的代码转动多远,然后进行前进的距离和打开的数量,重复我用这段代码所做的。
import turtle
print ('Input the distance forward you want to go and the amount you want to turn, it will make a square by defalt')
while True:
turtle.forward(50)
turtle.left(90)
对于第二阶段,我这样做是为了让用户可以从代码内部输入向前的距离和转向的数量,我通过添加变量 d 和 t 来完成此操作,并让它们定义乌龟向前走了多远以及走了多少结果我用这段代码做到了
import turtle
d = input("How far forward: ")
t = input("How much do you want to turn: ")
while True:
turtle.forward(int(d))
turtle.left(int(t))
到目前为止,我的表现还不错,但我想做的事情要难得多,因为我直到现在才接触过乌龟,而且我似乎无法设置速度不管我如何更改代码,顺便说一句,我知道我现在的代码很糟糕,但我已经尝试了大约 4 天,所以我只是放弃了我尝试的最后一个代码,但我有一些更好的代码和一些比这个更糟糕
import turtle
e = int('0')
m = int('10')
f = int(input("How fast do you want to go: "))
d = input("How far forward: ")
t = input("How much do you want to turn: ")
if f < e:
int(f = input("How fast do you want to go: "))
elif f > m:
int(f = input("How fast do you want to go: "))
turtle.speed(int(f))
while True:
turtle.forward(int(d))
turtle.left(int(t))
任何帮助将不胜感激,所以我可以搁置这段代码,因为这只是我想做的事情,这样我就可以了解一些海龟的工作原理。
行:
int(f = input("How fast do you want to go: "))
应该是 f
的赋值,它会转换输入。不是作业的演员表
f = int(input("How fast do you want to go: "))
您可以强制用户输入一个范围内的值,方法是让他们保持在 while True
循环中,直到他们输入正确的值:
import turtle
MIN = 0
MAX = 10
while True:
f = int(input("How fast do you want to go [0,10]: "))
# If F is in the range of min and max, leave the loop
if MIN <= f <= MAX:
break
d = int(input("How far forward: "))
t = int(input("How much do you want to turn: "))
turtle.speed(f)
while True:
# d is the length variable, this was f
turtle.forward(d)
turtle.left(t)
我发现您的代码存在 5 个主要问题:
- 您没有实例化海龟对象。您正在做的只是导航 class 本身,这可能会带来一些奇怪的错误。创建海龟对象后,您将不再需要 while True 语句,如果没有要实现的 break 语句,这通常不是一个好主意,因为它确实会 运行 永远。
- 你的变量声明真的很难读,而且不必要地复杂化。注意:如果您只需要一次声明,则无需为其分配任何其他名称。
- 可以通过利用 or 运算符来简化 if 子句。
- 我不知道我是否做对了你的任务,但我认为你真的不需要 while 循环吗?如果是这样,您应该考虑在完全绘制正方形或矩形后立即断开。
- 除非使用海象运算符,否则不能在 int() 函数内部分配变量:=
import turtle
s = turtle.getscreen()
t = turtle.Turtle()
speed = -1
while speed < 0 or speed > 10:
speed = int(input('How fast do you want the turtle togo?'))
forward = int(input('How far forward?'))
left = int(input('How far to the left?'))
t.speed(speed)
t.forward(forward)
t.left(left)
没有测试代码,但总体思路应该已经有所帮助。干杯:)