0

我的程序

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 等) 它应该画一个正方形但没有显示我做错了什么

4

3 回答 3

3

该行while i == input():(即使在删除引号之后)没有为i. 它正在比较input()to的结果i,这可能不是您想要的。

于 2013-02-26T02:04:10.317 回答
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()

这应该足以使图形屏幕弹出。

祝好运并玩得开心点。

于 2013-02-26T01:55:54.893 回答
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()
于 2013-02-26T02:12:59.363 回答