【问题标题】:Error when using a string as a parameter使用字符串作为参数时出错
【发布时间】:2013-03-10 08:21:29
【问题描述】:

我有一个浮动列表[234, 533, 734, 964, 623, 744, 244, 353, 264]。然后,我将其格式化为"(234, 533, 734), (964, 623, 744), (244, 353, 264)" 之类的字符串。

这是我将其传递给的函数的格式示例:

cmds.curve( p=[(0, 0, 0), (3, 5, 6), (5, 6, 7), (9, 9, 9)] )

这是我使用的返回错误的内容:

cmds.curve( p = [ pStr ] )

这是错误:

第 142 行:标志“p”的参数无效。预期(距离,距离,距离),得到 [ str, str ] #

【问题讨论】:

  • 您必须将字符串更改为数字。这是一个与python相关的问题吗?因为你也可以将 Python 添加为标签。
  • 感谢 Zaf 的快速回复。我不知道该怎么做。我的方法正确吗?
  • 使用 cmds.curve( p = eval( pStr ) ) 解决了它
  • @WarrenDaza,eval 通常不受欢迎。
  • 在堆栈溢出stackoverflow.com/questions/379906/… 上还有一个类似的问题可能对您有帮助

标签: python string arguments


【解决方案1】:

尝试使用zip,点击here查看python文档。

>>> my_list = [234, 533, 734, 964, 623, 744, 244, 353, 264]
>>> zip(*[iter(my_list)]*3)
[(234, 533, 734), (964, 623, 744), (244, 353, 264)]

【讨论】:

  • 嘿,这可能太聪明了:P 另外,1: 是怎么回事?
  • @askewchan,我使用了一个名为dreampie 的程序作为我的python shell,它把这些数字放在那里。
【解决方案2】:

试试这个,看看它是否适合你。我有一种感觉,您正在不必要地转换为字符串。

floats = [234, 533, 734, 964, 623, 744, 244, 353, 264]
groups = [tuple(floats[i:i+3]) for i in range(0, len(floats), 3] 
cmds.curve(p=groups)

【讨论】:

    猜你喜欢
    • 2020-03-16
    • 1970-01-01
    • 2021-08-10
    • 2011-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 2019-08-07
    • 1970-01-01
    相关资源
    最近更新 更多