无法在Python tu中分配给literal

2024-09-28 20:47:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python初学者,当我输入这段代码时,错误是“cannotassigntoliteral”,我该如何解决这个问题?你知道吗

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

Tags: 代码fromimportdef错误mathcosint
3条回答

问题是你的陈述'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是一个字符串而不是变量。要了解更多关于变量和字符串的信息,只需通过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

相关问题 更多 >