首页 > 解决方案 > 为什么我的参数没有在 Python 中定义?

问题描述

我对 python 很陌生,我试图在 main 中调用这些函数,但是每当我运行程序时,它都会说“wn”没有定义。为什么这不起作用?

我也尝试在 main 之外调用该函数,但仍然是同样的错误。

import turtle               #1. import modules
import random

#Part A
def setupWindow(wn):
    wn = turtle.Screen()       # 2.  Create a screen
    wn.bgcolor('lightblue')

def setupTurtles():
    michelangelo = turtle.Turtle()    # 3.  Create two turtles
    leonardo = turtle.Turtle()
    michelangelo.color('orange')
    leonardo.color('blue')
    michelangelo.shape('turtle')
    leonardo.shape('turtle')
    michelangelo.up()          # 4.  Pick up the pen so we don\u2019t get lines
    leonardo.up()
    michelangelo.goto(-100,20)
    leonardo.goto(-100,-20)

    ## 5. your code goes here

    #Slowing Turtles Down
    michelangelo.speed(1)
    leonardo.speed(1)

#Race 1
def raceOne(myturtle, myturtle2):
    myturtle.forward(random.randrange(1,101))
    myturtle2.forward(random.randrange(1,101))

#Race 2
def raceTwo(myturtle, myturtle2):
    for x in range(10):
        myturtle.forward(random.randrange(0,11))
        myturtle2.forward(random.randrange(0,11))

setupTurtles()

# Part B - complete part B here
def drawShapes(myturtle):
    myturtle.down()
    for sides in [3, 4, 6, 9, 12]:
        for i in range(sides):
            leonardo.forward(50)
            leonardo.right(360/sides)
        leonardo.clear()
    return sides


def main():
    setupWindow(wn)
    setupTurtles()
    raceOne(michelangelo, leonardo)
    raceTwo(michelangel, leonardo)
    drawShapes(leonardo)

main()
wn.exitonclick()

标签: pythonpython-3.xlinuxterminal

解决方案


感谢您提出问题。此问题是由于未正确引用我已修改您的代码以使其运行的功能而产生的。请检查并进一步修改它。

import turtle  # 1. import modules
import random


# Part A
def setupWindow(wn):
    wn = turtle.Screen()  # 2.  Create a screen
    wn.bgcolor('lightblue')


def setupTurtles():
    michelangelo = turtle.Turtle()  # 3.  Create two turtles
    leonardo = turtle.Turtle()
    michelangelo.color('orange')
    leonardo.color('blue')
    michelangelo.shape('turtle')
    leonardo.shape('turtle')
    michelangelo.up()  # 4.  Pick up the pen so we don\u2019t get lines
    leonardo.up()
    michelangelo.goto(-100, 20)
    leonardo.goto(-100, -20)
    michelangelo.speed(1)
    leonardo.speed(1)
    raceOne(michelangelo, leonardo)
    raceTwo(michelangelo, leonardo)
    leonardo.down()
    for sides in [3, 4, 6, 9, 12]:
        for i in range(sides):
            leonardo.forward(50)
            leonardo.right(360 / sides)
        leonardo.clear()
    return sides

    ## 5. your code goes here

    # Slowing Turtles Down



# Race 1
def raceOne(myturtle, myturtle2):
    myturtle.forward(random.randrange(1, 101))
    myturtle2.forward(random.randrange(1, 101))


# Race 2
def raceTwo(myturtle, myturtle2):
    for x in range(10):
        myturtle.forward(random.randrange(0, 11))
        myturtle2.forward(random.randrange(0, 11))


setupTurtles()


# Part B - complete part B here
def drawShapes(myturtle):
    pass


def main():
    wn = ""
    setupWindow(wn)
    setupTurtles()



main()

turtle.exitonclick()

推荐阅读