Python 有用户输入的乌龟

Python Turtle with user input

我想使用 python turtle 创建一个程序,询问用户他们想要多边形的多少条边,然后 turtle 绘制它。这是我的代码:

import turtle

window = turtle.Screen()
window.bgcolor("lightgreen")

shape = turtle.Turtle()
shape.color("blue")
shape.pensize(3)

sides = int(input("How many sides do you want? Use digits: "))

def polygon(sides,length):

    for x in range(sides):
        shape.forward(length)
        shape.left(360/sides)

出于某种原因,这行不通。有什么想法吗?

提前致谢!

你实际上并没有调用 polygon,你只是 定义 它(这就是 def polygon(sides,length):def 部分的意思。 尝试添加类似

的内容
polygon(sides, length) 

到你脚本的底部;或者更具体地说,在定义之后的任何地方。

原创

如果您使用 Python 2,您应该使用 raw_input 而不是 input

除此之外,尝试包含错误消息/输出以获得摩尔目标答案。

您需要像这样调用您创建的函数:

polygon(sides,100)  

或您想要的任何其他长度而不是 100

您可以做的另一件事是要求用户从控制台输入长度

length = int(input("How tall do you want the lines? Use digits: "))

我能理解为什么它不起作用的唯一原因是你没有输入最后一行代码。这实际上是必不可少的,否则 python 不会 运行 def .对于您的实例,它将是:polygon(sides,100) 我只举了100作为例子,你可以自己改成你想要的

您的代码应如下所示

import turtle

window = turtle.Screen()
window.bgcolor("lightgreen")

shape = turtle.Turtle()
shape.color("blue")
shape.pensize(3)

sides = int(input("How many sides do you want? Use digits: "))

def polygon(sides, length):

    for x in range(sides):
        shape.forward(length)
        shape.left(360/sides)
polygon(10, 90) # replace these numbers with the values that you want

我首先看到的是 def() 语句中的两个变量之间没有 space。第二件事是,当您创建 def 时,就像创建一个大变量,其中所有代码都是该变量(有点)def 语句中括号内的变量是稍后调用函数时需要定义的变量这样函数就会 运行 正确!