2017-03-09 33 views
0

私はpythonの初心者です。このコードを入力すると、「リテラルに割り当てることはできません」というエラーメッセージが表示されます。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() 

答えて

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 
+0

ありがとうございました!!!出来た –

0

問題は文'triangle'=(int(bodylength))/5*3/2/cos(70)です。文字列リテラルを他のものと等しく設定することはできません。あなたが変数であることを意図した場合は、その周りの引用符を削除する必要があります。また、関数と同じ名前の変数を持つべきではありません。

+0

*「あなたは関数と同じ名前の変数を持つべきではありません。」*あなたはいないはずですが、技術的にあなたは '前方 – Pythogen

0

inteadだけtriangle

'triangle'使用を使用するので、あなたのコードは次のようになりますのpythonへ'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() 

あなたはこれを実行する必要があります。変数と文字列の詳細については、文字列と変数の違いを教えてください。

注:コードにはforward()のような他のエラーがあるようです。 turtle.forward()などに電話する必要があります。そして、私はまた、Math.cos()がパラメータのdegの代わりにradを取ると考えています。

+0

することができます()コールはワイルドカードのワイルドカードのインポートのためうまくいきます。度とラジアンの問題についてあなたは正しいです。しかし、これは答えが間違っているだけです。上のコードがまったく動かないようにするのは、未定義の 'bodylength'です。 – cdlane

関連する問題