【问题标题】:Python program and drawing a squarePython程序和画一个正方形
【发布时间】:2013-02-26 01:51:40
【问题描述】:

我的程序

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 等) 假设要画一个正方形,但什么也没显示 我做错了什么

【问题讨论】:

  • if 都符合,只是没把它放进去
  • 如果您与制表符和空格的使用保持一致,则格式会很好。使用其中之一,而不是两者。

标签: python turtle-graphics logo-lang


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在 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()
    

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

    祝你好运,玩得开心。

    【讨论】:

    • 带走所有“”或只带一点
    • 回溯(最近一次调用最后一次):文件“as2.py”,第 2 行,在 i = input() 文件“”,第 1 行,在 NameError : 名称“fd”未定义
    • 哦,您一定使用的是 Python 2.x 而不是 Python 3.x。在这种情况下,您应该使用raw_input()。在 Python 2.x 中,Python 尝试评估输入到 input() 中的任何内容。
    • 好的,我可以画正方形,但图片没有留在屏幕上
    【解决方案3】:

    正如其他人所说,你想去掉函数周围的引号,而不是每一个引号:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多