Итак, эта программа позволяет мне настраивать фигуру палки. Я довольно новичок в python, и это мой первый большой проект за пределами школьной информатики. Поскольку координаты для рук тела заканчиваются в разных местах, мне нужны координаты из bodyfunc, короткие, средние и длинные. Эта программа работает, но по какой-то причине она не получает значение и передает ему функцию моего хвоста/аксессуара. Можете ли вы посмотреть мою программу и помогите мне!Как передать переменную между функцией
import turtle
#Head
def headfunc(headtype, headcolor, headpensize):
head=turtle.Turtle()
head.color(headcolor)
head.pensize(headpensize)
if headtype=="square":
wn = turtle.Screen()
head.penup()
head.left(90)
head.forward(200)
head.pendown()
head.left(90)
head.forward(50)
head.right(90)
head.forward(100)
head.right(90)
head.forward(100)
head.right(90)
head.forward(100)
head.right(90)
head.forward(50)
elif headtype=="round":
wn = turtle.Screen()
head.penup()
head.left(90)
head.forward(200)
head.right(90)
head.pendown()
head.circle(50)
elif headtype=="diamond":
wn = turtle.Screen()
head.penup()
head.goto(0,200)
head.pendown()
head.goto(35,300)
head.goto(0,400)
head.goto(-35,300)
head.goto(0,200)
else:
print("Not valid")
# Body
def bodyfunc(bodytype,bodycolor, bodypensize, endbody, endarm_x, endarm_y):
body=turtle.Turtle()
body.color(bodycolor)
body.pensize(bodypensize)
if bodytype=="short":
bodylength = 200
wn = turtle.Screen()
body.penup()
body.goto(0,200)
body.pendown()
body.goto(0,200-bodylength) #Body Length
body.goto(0,200-3*bodylength/8) #Body(Reposition)
body.goto(bodylength/2,200-bodylength/4) #Arm Length (Right)
body.goto(0,200-3*bodylength/8) #Body (Reposition)
body.goto(-bodylength/2,200-bodylength/4) #Arm Length (Left)
body.goto(0,200-3*bodylength/8) #Body (Reposition)
body.goto(0,200-bodylength) #Body (Reposition)
body.goto(bodylength/4, 200-3*bodylength/2) #Leg Length (Right)
body.goto(0,200-bodylength) #Body (Reposition)
body.goto(-bodylength/4,200-3*bodylength/2)#Leg Length(Left)
endbody = 200-bodylength
endarm_x = bodylength/2
endarm_y = 200-bodylength/4
return endbody, endarm_x, endarm_y
elif bodytype=="medium":
bodylength = 300
wn = turtle.Screen()
body.penup()
body.goto(0,200)
body.pendown()
body.goto(0,200-bodylength) #Body Length
body.goto(0,200-3*bodylength/8) #Body(Reposition)
body.goto(bodylength/2,200-bodylength/4) #Arm Length (Right)
body.goto(0,200-3*bodylength/8) #Body (Reposition)
body.goto(-bodylength/2,200-bodylength/4) #Arm Length (Left)
body.goto(0,200-3*bodylength/8) #Body (Reposition)
body.goto(0,200-bodylength) #Body (Reposition)
body.goto(bodylength/4,200-3*bodylength/2) #Leg Length (Right)
body.goto(0,200-bodylength) #Body (Reposition)
body.goto(-bodylength/4,200-3*bodylength/2)#Leg Length(Left)
endbody = 200-bodylength
endarm_x = bodylength/2
endarm_y = 200-bodylength/4
return endbody, endarm_x, endarm_y
elif bodytype=="long":
bodylength = 400
wn = turtle.Screen()
body.penup()
body.goto(0,200)
body.pendown()
body.goto(0,200-bodylength) #Body Length
body.goto(0,200-3*bodylength/8) #Body(Reposition)
body.goto(bodylength/2,200-bodylength/4) #Arm Length (Right)
body.goto(0,200-3*bodylength/8) #Body (Reposition)
body.goto(-bodylength/2,200-bodylength/4) #Arm Length (Left)
body.goto(0,200-3*bodylength/8) #Body (Reposition)
body.goto(0,200-bodylength) #Body (Reposition)
body.goto(bodylength/4,200-3*bodylength/2) #Leg Length (Right)
body.goto(0,200-bodylength) #Body (Reposition)
body.goto(-bodylength/4,200-3*bodylength/2)#Leg Length(Left)
endbody = 200-bodylength
endarm_x = bodylength/2
endarm_y = 200-bodylength/4
return endbody
else:
print("Not valid")
# Tail
def tailfunc(tail, endbody):
if tail=="yes":
wn = turtle.Screen()
tail=turtle.Turtle()
tail.penup()
print(endbody)
tail.goto(0,endbody)
tail.pendown()
tail.color("brown")
tail.right(65)
tail.circle(60,200)
tail.shape("triangle")
elif tail=="no":
quiterty=1
else:
print("Not valid")
def accessories1func(accessories1, endarm_x, endarm_y):
a=turtle.Turtle()
if accessories1=="sword":
wn = turtle.Screen()
a.goto(endarm_x, endarm_y)
a.forward(100)
wn.mainloop()
def main():
headtype=input("Enter head(square,round,diamond)")
headcolor=input("Head Color?:Red,white,black,gray,brown,gold,purple,blue,cyan")
headpensize=input("Head pensize? 1-5")
bodytype=input("Enter body(short,medium,long")
bodycolor=input("Body Color?:Red,white,black,gray,brown,gold,purple,blue,cyan")
bodypensize=input("Head pensize? 1-5")
tail=input("Tail: Yes or no")
accessories1=input("sword,staff,gun,bow")
endbody = 0
endarm_x = 0
endarm_y = 0
headfunc(headtype,headcolor, headpensize)
bodyfunc(bodytype,bodycolor, bodypensize, endbody, endarm_x, endarm_y)
tailfunc(tail,endbody)
accessories1func(accessories1, endarm_x, endarm_y)
main()
Не могли бы вы немного уменьшить это? Здесь слишком много кода. – tacaswell
Не публикуйте всю программу и просто просите «помочь». Скажите нам * точно, что случилось, и опубликуйте только код, необходимый для демонстрации проблемы. – Blorgbeard
Немного запоздалый прием к SO. Вы получите лучшую помощь здесь, если вы сделаете это _easy_, чтобы помочь вам. Пожалуйста, прочитайте http://stackoverflow.com/help и http://sscce.org/ – tacaswell