【发布时间】:2017-04-04 11:31:45
【问题描述】:
我有问题。我正在编写 Python-Maya 脚本。我正在尝试将一个对象列表挤出到另一个对象列表中,但是当我尝试这样做时出现以下错误(错误不是我开始 for 循环的行):
Error: line 1: TypeError: file <maya console> line 45: range() integer end argument expected, got list.
#
def extrude_():
for i in range(listOfCircles):
mc.select(listOfCurves[0], all=True)
mc.select(listOfCircles[0], all=True)
mc.extrude(listOfCurves[0]+str(i), listOfCircles[0]+str(i), et=2)
return
listOfCircles 和 listOfCurves 是全局变量,所以我认为我不需要将它们传递给函数..
【问题讨论】:
-
这个错误告诉你你需要知道什么:
range()函数需要一个整数作为它的参数而不是一个列表。你可能想要的是range(len(listOfCircles))。 -
我之前尝试使用 range(len(listOfCircles)) 运行代码,但它给了我这个错误:# Error: line 1: TypeError: file
line 49: can only concatenate列出(不是“str”)以列出# -
通过在循环中打印出来来检查 listOfCurves[0] 的内容。如果它是一个列表,那么您不能在该列表中“添加”(+)一个字符串。
-
只使用 for i, curve in enumerate(listOfCircles): ?
-
@kartikg3 我已经检查了列表...结果是:circle_0 circle_1 circle_2 circle_3 circle_4 ... ... circle_252 circle_253 circle_254 curve_0 curve_1 curve_2 curve_3 ... ... 。 ..curve_252curve_253curve_254curve_0 到底我有curve_0是不是很奇怪? ############## 我试过 for i, curve in enumerate(listOfCircles): 正如你所建议的,但没有任何改变。错误总是一样的