我正在编写一个程序,需要在控制台中输入以控制乌龟在屏幕上的位置。例如,如果程序的用户在控制台中键入w
并按下回车,则乌龟应向前移动30个单位。如果用户键入a
,则乌龟应该向左转45度等等。
我编写了一些函数,并为程序使用了无限while
循环。它看起来像这样:
def movemattfd():
matt.fd(30)
def movemattlt():
matt.lt(45)
def movemattrt():
matt.rt(45)
def movemattbk():
matt.back(30)
def movematt():
while True:
input()
if input() == 'w':
movemattfd()
if input() == 'a':
movemattlt()
if input() == 'd':
movemattrt()
if input() == 's':
movemattbk()
def main():
windowHeight = 500
windowWidth = 500
turtle.screensize(windowWidth, windowHeight, None)
movematt()
main()
该程序有效,除非我在控制台中输入w
,至少需要2个条目才能让我的乌龟前进。当我试图将乌龟变为正确时,它需要更多。
有什么想法吗?提前谢谢。
答案 0 :(得分:1)
每个input()
都会提示用户输入新条目。
对于每组5个条目,您的代码所做的是:
'w'
然后前进'a'
然后向左移动's'
然后向右移动'd'
,然后再返回您应该将第一个input()
分配给变量,然后进行检查。
如果已满足其他字符,请使用elif
以避免检查其他字符。
while True:
entry = input()
if entry == 'w':
movemattfd()
elif entry == 'a':
movemattlt()
elif entry == 'd':
movemattrt()
elif entry == 's':
movemattbk()