我的节目
import turtle
i = "input()"
while i == "input()":
if i == "exit":
input()
if i == "fd":
turtle.fd(1)
if i == "bk":
turtle.bk(1)
if i == "lt":
turtle.lt(90)
if i == "rt":
turtle.rt(90)
if i == "pu":
turtle.pu()
if i == "pd":
turtle.pd()
现在输入的文件是(fd,fd,fd,bk,bk,lt,rt等) 假设画一个正方形但没有任何东西出现 我做错了什么
答案 0 :(得分:3)
在Python中,您可以调用一个函数input()
。但你不是在说它。你在它周围加上引号,所以你只是引用一个包含字母'i','n','p','u','t','(',')'的字符串。
删除引号,以便实际调用input()
函数。
编辑:从下面的评论中看,您使用的是Python 2.x;所以你应该使用raw_input()
。 raw_input()
只返回用户输入的字符串; input()
尝试将其评估为值。
x = input() # if user types "2", x is set to the number 2
x = raw_input() # if user types "2", x is set to the string "2"
编辑:你需要确保笔已关闭,你可能希望乌龟在前进或后退时只能超过1,你需要让屏幕出现。
我建议您阅读Python中基于乌龟图形的基本介绍。
http://www.blog.pythonlibrary.org/2012/08/06/python-using-turtles-for-drawing/
在while循环开始之前,尝试将其放入:
screen = turtle.getscreen()
这应该足以让图形屏幕弹出。
祝你好运,玩得开心。
答案 1 :(得分:3)
行while i == input():
(即使删除引号后)也没有为i
分配值。它将input()
的结果与i
进行比较,这可能不是您想要的。
答案 2 :(得分:1)
正如其他人所说,你想要删除函数周围的引号,而不是每一个引用:
import turtle
while True:
i = input()
if i == "exit":
break # stops the loop
if i == "fd":
turtle.fd(1)
if i == "bk":
turtle.bk(1)
if i == "lt":
turtle.lt(90)
if i == "rt":
turtle.rt(90)
if i == "pu":
turtle.pu()
if i == "pd":
turtle.pd()
你得到了NameError
,因为如果你从"fd"
中取出引号,你就有一个变量fd
,而不是一个字符串。但是,尚未定义变量fd
,因此会出现错误。
但是,如果您使用的是Python 2.x(而非3.x),则应使用raw_input()
(这将返回一个字符串):
import turtle
while True:
i = raw_input()
if i == "exit":
break
if i == "fd":
turtle.fd(1)
if i == "bk":
turtle.bk(1)
if i == "lt":
turtle.lt(90)
if i == "rt":
turtle.rt(90)
if i == "pu":
turtle.pu()
if i == "pd":
turtle.pd()