Loops 海龟模块编码时的迭代问题
我不断收到一条错误消息,“I”是一个未使用的变量,但我正在使用它来迭代一个循环,该循环的变量范围取决于用户输入(numShapes)。当变量是整数值时,python为什么不接受它 ***此代码旨在调用turtle模块的两个绘图函数之一,在边界内随机放置不同大小和位置的可变数量(numshape)的绘图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
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)
。否则,我看不出语法错误的原因,您可能会用当前完整的代码提出一个新问题。