为 Turtle 模块编码时的迭代问题
Iteration issue when coding for Turtle module
我不断收到一条错误消息,指出 'i' 是一个未使用的变量,但我正在使用它来迭代一个具有取决于用户输入 (numShapes) 的可变范围的循环。为什么 python 不接受整数值的变量?
***此代码旨在调用 turtle 模块的两个绘图函数之一,随机放置可变数量 (numShapes) 的不同大小和位置的绘图。
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 的通用 "throwaway" 变量名 _
代替:
for _ in range(10):
print(":-)")
看看是否可以抑制您收到的 unused 警告。这是 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)
我不断收到一条错误消息,指出 'i' 是一个未使用的变量,但我正在使用它来迭代一个具有取决于用户输入 (numShapes) 的可变范围的循环。为什么 python 不接受整数值的变量?
***此代码旨在调用 turtle 模块的两个绘图函数之一,随机放置可变数量 (numShapes) 的不同大小和位置的绘图。
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 的通用 "throwaway" 变量名 _
代替:
for _ in range(10):
print(":-)")
看看是否可以抑制您收到的 unused 警告。这是 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)