Loops 海龟模块编码时的迭代问题

Loops 海龟模块编码时的迭代问题,loops,iteration,turtle-graphics,Loops,Iteration,Turtle Graphics,我不断收到一条错误消息,“I”是一个未使用的变量,但我正在使用它来迭代一个循环,该循环的变量范围取决于用户输入(numShapes)。当变量是整数值时,python为什么不接受它 ***此代码旨在调用turtle模块的两个绘图函数之一,在边界内随机放置不同大小和位置的可变数量(numshape)的绘图 import random import turtle, BoundingBox from TurtleShapes import drawOneSquare from TurtleShapes

我不断收到一条错误消息,“I”是一个未使用的变量,但我正在使用它来迭代一个循环,该循环的变量范围取决于用户输入(numShapes)。当变量是整数值时,python为什么不接受它

***此代码旨在调用turtle模块的两个绘图函数之一,在边界内随机放置不同大小和位置的可变数量(numshape)的绘图

import random
import turtle, BoundingBox
from TurtleShapes import drawOneSquare
from TurtleShapes import drawOneShape

x = turtle.Turtle()

def drawEverywhere(x, func):      
    numShapes = int(input("How many shapes?"))
    for i in range(numShapes):
        x.penup()
        x.goto((random.randint(-1150,1150), random.randint(-550,550))      

        for i in range(numShapes):
            func(turtle, size))
                size = random.randint(10,40)

if __name__ == '__main__':
    win = turtle.Screen()
    BoundingBox.drawBoundingBox()

    ### Decide which shape ###
    input("Which shape? 's' for square or 'c' for circle")
        if input == 's':
            drawEverywhere(turtle, drawOneSquare)
        elif input == 'c':    
            drawEverywhere(turtle, drawOneShape)   
        else:
            print('invalid input') 

    win.exitonclick()

当我们有这样一个循环时:

for i in range(10):
    print(":-)")
一些Python代码检查器会将变量
i
标记为未使用,但其值从未使用过。解决此问题的一种常见方法是使用Python的通用“一次性”变量名
\uuu

for _ in range(10):
    print(":-)")
看看这是否会抑制您收到的未使用的警告。这是Python中
变量的几种用法之一

关于代码的其他注意事项:

x.goto((random.randint(-1150,1150), random.randint(-550,550))
它缺少一个右括号,并且不需要额外的左括号来生成元组——它可以简化为:

from random import randint
# ...
x.goto(randint(-1150, 1150), randint(-550, 550))
此代码会给您带来麻烦:

func(turtle, size))
    size = random.randint(10,40)
由于不平衡的括号、不合理的缩进和执行顺序。您可能想要:

size = random.randint(10, 40)
func(turtle, size)

当我们有这样一个循环时:

for i in range(10):
    print(":-)")
一些Python代码检查器会将变量
i
标记为未使用,但其值从未使用过。解决此问题的一种常见方法是使用Python的通用“一次性”变量名
\uuu

for _ in range(10):
    print(":-)")
看看这是否会抑制您收到的未使用的警告。这是Python中
变量的几种用法之一

关于代码的其他注意事项:

x.goto((random.randint(-1150,1150), random.randint(-550,550))
它缺少一个右括号,并且不需要额外的左括号来生成元组——它可以简化为:

from random import randint
# ...
x.goto(randint(-1150, 1150), randint(-550, 550))
此代码会给您带来麻烦:

func(turtle, size))
    size = random.randint(10,40)
由于不平衡的括号、不合理的缩进和执行顺序。您可能想要:

size = random.randint(10, 40)
func(turtle, size)

非常感谢。我没有收到关于'size=random.randint(10,40)'的无效语法错误消息。你知道为什么会这样吗?@SydneyBallard,如果你使用我提到的随机导入randint的
,那么语法将是
size=randint(10,40)
。否则,我看不出语法错误的原因,您可能会用当前完整的代码提出一个新问题。谢谢!我没有收到关于'size=random.randint(10,40)'的无效语法错误消息。你知道为什么会这样吗?@SydneyBallard,如果你使用我提到的随机导入randint的
,那么语法将是
size=randint(10,40)
。否则,我看不出语法错误的原因,您可能会用当前完整的代码提出一个新问题。