我知道我的問題令人困惑,所以我會在這里清理一下,然后在下面發布代碼。如下所示,我想要做的是有一個 tonysetup 函式,它將把特定樣式的烏龜帶入其指定區域。所以我將tonysetup 函式呼叫到tonyspirograph 函式中,并將torysetup 函式呼叫到torystarburst 函式中。我會給你另一個相同的代碼,它主要完成所有這些,我的問題是我必須將函式呼叫到其他函式中。
import turtle
def tonysetup():
tony = turtle.Turtle()
tony.shape("turtle")
tony.pensize(1.05)
tony.speed(20)
def torysetup():
tory = turtle.Turtle
tory.shape("turtle")
tory.pensize(1.05)
tory.speed(20)
tory.penup()
tory.backward(75)
tory.left(90)
tory.forward(25)
tory.right(90)
tory.pendown()
def tonyspirograph():
tonysetup()
tony.speed(100)
for i in range(12):
for color in ("red", "white", "blue"):
tony.color(color)
tony.circle(62.5)
tony.circle(87.5)
tony.left(10)
tony.hideturtle()
def torystarburst():
for i in range(24):
for color in ("red", "white", "blue"):
tory.color(color)
tory.forward(150)
tory.right(145)
tory.hideturtle()
def main():
tonyspirograph()
torystarburst()
print("Star Spangled Spirograph: by *** *******")
print("Thank you veterans!")
main()
現在,當我運行此代碼時,它說“NameError: name 'tony' is not defined on line 26”
我為退伍軍人節制作了下一個代碼,這就是上一個代碼的基礎。這一切都是主要的,而不是像我需要的那樣呼叫函式。
import turtle
def main():
tony = turtle.Turtle()
tony.shape("turtle")
tony.pensize(1.05)
tony.speed(20)
tory = turtle.Turtle()
tory.shape("turtle")
tory.pensize(1.05)
tory.speed(20)
for i in range(12):
for color in ("red", "white", "blue"):
tony.color(color)
tony.circle(62.5)
tony.circle(87.5)
tony.left(10)
tony.hideturtle()
tory.penup()
tory.backward(75)
tory.left(90)
tory.forward(25)
tory.right(90)
tory.pendown()
for i in range(24):
for color in ("red", "white", "blue"):
tory.color(color)
tory.forward(150)
tory.right(145)
tory.hideturtle()
print("Star Spangled Spirograph: by **** *******")
print("Thank you veterans!")
main()
uj5u.com熱心網友回復:
您已在函式中定義了tony,因此目前只能在該函式中識別它。進行設定時,您需要將其傳遞給 tonyspirograph()。這對我有用:
import turtle
def tonysetup():
tony = turtle.Turtle() #assign the turtle to the variable tony
tony.shape("turtle")
tony.pensize(1.05)
tony.speed(20)
return tony #return the turtle
def torysetup():
tory = turtle.Turtle() #this was missing brackets
tory.shape("turtle")
tory.pensize(1.05)
tory.speed(20)
tory.penup()
tory.backward(75)
tory.left(90)
tory.forward(25)
tory.right(90)
tory.pendown()
return tory
def tonyspirograph():
tony = tonysetup() # the setup returns the turtle tony
tony.speed(100)
for i in range(12):
for color in ("red", "white", "blue"):
tony.color(color)
tony.circle(62.5)
tony.circle(87.5)
tony.left(10)
tony.hideturtle()
def torystarburst():
tory = torysetup() # you need to do the same thing
for i in range(24):
for color in ("red", "white", "blue"):
tory.color(color)
tory.forward(150)
tory.right(145)
tory.hideturtle()
def main():
tonyspirograph()
torystarburst()
print("Star Spangled Spirograph: by *** *******")
print("Thank you veterans!")
main()
至于你的挫敗感,我明白,我自己是新來的。但是當人們不斷詢問而不是為自己尋找解決方案時,這很煩人。學習如何逐步檢查您的代碼、閱讀錯誤、參考檔案、Google 等。您除錯得越多,您學習的速度就越快,您就越能勝任。然后有一天,當你成為一名槍支程式員時,你也會被新手問愚蠢的問題惹惱。
uj5u.com熱心網友回復:
有幾個簡單的錯誤會阻止您的代碼作業。首先是tonysetup()與torysetup()創建龜,但未能使這些龜的這些功能外提供。這可以使用全域變數來完成,或者最好通過將return它們創建的海龜的兩個函式交給它們的呼叫者來完成,這兩個函式將它們隱藏在一個變數中。
下一個問題是您torystarburst()無法呼叫您的torysetup()函式。你可以用tonyspirograph()/tonysetup()但不是其他一對函式。
最后,您將錯誤的值傳遞給了turtlespeed()方法,請重新閱讀檔案。以下是我為解決上述問題和一些樣式問題而重新撰寫的代碼:
from turtle import Screen, Turtle
def tonysetup():
tony = Turtle()
tony.shape('turtle')
tony.pensize(1.05)
tony.speed('fastest')
return tony
def torysetup():
tory = tonysetup()
tory.penup()
tory.backward(75)
tory.left(90)
tory.forward(25)
tory.right(90)
tory.pendown()
return tory
def tonyspirograph():
tony = tonysetup()
for _ in range(12):
for color in ('red', 'white', 'blue'):
tony.color(color)
tony.circle(62.5)
tony.circle(87.5)
tony.left(10)
tony.hideturtle()
def torystarburst():
tory = torysetup()
for _ in range(24):
for color in ('red', 'white', 'blue'):
tory.color(color)
tory.forward(150)
tory.right(145)
tory.hideturtle()
def main():
tonyspirograph()
torystarburst()
print("Star Spangled Spirograph: by *** *******")
print("Thank you veterans!")
screen = Screen()
main()
screen.exitonclick()
我改變torysetup()呼叫tonysetup()的一切,tonysetup()不就是torysetup()會做初步。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/376172.html
