Программа Python и рисование квадрата
Моя программа
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 и т. Д.), Предполагается нарисовать квадрат, но ничего не показывает, что я делаю неправильно
3 ответа
Линия while i == input():
(даже после удаления кавычек) не присваивает значение i
, Это сравнивает результат input()
в i
что, вероятно, не то, что вы намерены.
В 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()
Этого должно быть достаточно, чтобы графический экран всплыл.
Удачи и приятного времяпровождения.
Как уже говорили другие, вы хотите убрать кавычки вокруг функции, а не каждую кавычку:
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()