无法分配给 Python 乌龟中的文字
Can't assign to literal in Python turtle
我是 python 初学者,当我输入这段代码时,错误提示 "can't assign to literal" 我该如何解决这个问题?
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'=(int(bodylength))/5*3/2/cos(70)
。您不能将字符串文字设置为等于其他内容。如果你想让它成为一个变量,你需要从它周围删除引号。另外,你不应该有一个与函数同名的变量。
不使用 '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 而不是 variable。要了解有关变量和字符串的更多信息,只需 google 字符串和变量之间的区别
注意:看起来您的代码可能还有其他错误,例如 forward()
。您可能需要调用 turtle.forward()
或其他方式。而且我还认为 Math.cos()
参数采用 rad 而不是 deg。
尽管将 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
我是 python 初学者,当我输入这段代码时,错误提示 "can't assign to literal" 我该如何解决这个问题?
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'=(int(bodylength))/5*3/2/cos(70)
。您不能将字符串文字设置为等于其他内容。如果你想让它成为一个变量,你需要从它周围删除引号。另外,你不应该有一个与函数同名的变量。
不使用 '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 而不是 variable。要了解有关变量和字符串的更多信息,只需 google 字符串和变量之间的区别
注意:看起来您的代码可能还有其他错误,例如 forward()
。您可能需要调用 turtle.forward()
或其他方式。而且我还认为 Math.cos()
参数采用 rad 而不是 deg。
尽管将 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