Почему "turtle.pd" выдает синтаксическую ошибку в моем Python коде? - PullRequest
0 голосов
/ 06 апреля 2020

Я пытался сделать что-то вроде сложного параметра c, но это не главное. Что важно, так это то, что моя программа должна нарисовать круг с помощью графики Черепахи, и когда я опускаю перо, у меня появляется синтаксическая ошибка в строке "turtle.pd()". Я понятия не имею, что происходит. Ребята, вы можете мне помочь? Моя программа ниже.

import turtle, math, cmath
def f(x): return math.e ** (1j * x) # Use Python code to define f(x) as the return value; don't forget the math and cmath modules are imported
precision = 25 # This program will draw points every (1 / precision) units
def draw(x):
    value = f(x)
    try:
        turtle.xcor = value.real * 25 + 100
        turtle.ycor = value.imag * 25 + 100
    turtle.pd() # Syntax error here
    turtle.forward(1)
    turtle.pu()
draw(0)
num = 0
while True:
    num += 1
    draw(num)
    draw(-num)

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Помимо отсутствующей синтаксической ошибки в выражении except, на которую указывает @dguis (+1), мне интересно, что, по вашему мнению, делают эти строки:

turtle.xcor = value.real * 25 + 100
turtle.ycor = value.imag * 25 + 100

Если .xcor и .ycor ваши собственные свойства, которые вы спрятали на черепахе, тогда все в порядке. Если вы думаете, что это движет черепахой - то нет. Если цель состоит в том, чтобы переместить черепаху, попробуйте:

turtle.setx(value.real * 25 + 100)
turtle.sety(value.imag * 25 + 100)

Полное решение с дополнительными настройками:

import turtle
import math

def f(x):
    return math.e ** complex(0, x)

def draw(x):
    value = f(x) * 25

    turtle.setx(value.real + 100)
    turtle.sety(value.imag + 100)

    turtle.pendown()
    turtle.forward(1)
    turtle.penup()

turtle.penup()

num = 0

draw(num)

while True:
    num += 1
    draw(num)
    draw(-num)
1 голос
/ 06 апреля 2020

Я бы добавил

except [errortype]:
    pass

после блока try. Замените [errortype] на ошибку, которую вы надеялись уменьшить с помощью блока try. Я не вижу, какая ошибка может возникнуть в этом блоке, чтобы вы могли просто написать

turtle.xcor = value.real * 25 + 100
turtle.ycor = value.imag * 25 + 100

и удалить блок try все вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...