无法在Python龟中分配给文字

时间:2017-03-09 04:04:49

标签: python turtle-graphics

我是python初学者,当我输入此代码时,错误显示"无法分配给文字"我该如何解决这个问题?

from turtle import*
from math import*
def triangle(): 
   triangle=(int(bodylength))/5*3/2/cos(70)
   penup()
   forward(int(bodylength)/5)
   pendown()
   left(70)
   forward(int('triangle'))
   right(140)
   forward(int('triangle'))
   forward(int(bodylength)/5)
triangle()

3 个答案:

答案 0 :(得分:1)

虽然有必要将forward(int('triangle'))更改为forward(int(triangle)),但由于bodylength未定义,因此还不够。让我们重新修改它以使代码更清晰并运行:

from turtle import Turtle, Screen
import math

def triangle(turtle, bodylength):
    distance = bodylength / 5 * 3 / 2 / math.cos(math.radians(70))
    turtle.penup()
    turtle.forward(bodylength / 5)
    turtle.pendown()
    turtle.left(70)
    turtle.forward(distance)
    turtle.right(140)
    turtle.forward(distance)
    turtle.forward(bodylength / 5)

screen = Screen()

yertle = Turtle()

triangle(yertle, int(input("Body length: ")))

screen.exitonclick()  # depending on the environment, you may not need this

答案 1 :(得分:0)

问题是你的陈述'triangle'=(int(bodylength))/5*3/2/cos(70)。您不能将字符串文字设置为等于其他内容。如果您想将其作为变量,则需要从中删除引号。此外,您不应该有一个与函数同名的变量。

答案 2 :(得分:0)

使用'triangle'只使用triangle

因此您的代码将如下所示:

from turtle import*
from math import*
def triangle(): 
   triangle=(int(bodylength))/5*3/2/cos(70)
   penup()
   forward(int(bodylength)/5)
   pendown()
   left(70)
   forward(int(triangle))
   right(140)
   forward(int(triangle))
   forward(int(bodylength)/5)
triangle()

您需要这样做,因为'triangle'到python是 String 而不是变量。要了解有关变量和字符串的更多信息,只需谷歌字符串和变量之间的差异

注意:您的代码可能还有其他错误,例如forward()。您可能需要拨打turtle.forward()或其他内容。我还认为Math.cos()对参数采用rad而不是deg。