NCF参数化建筑论坛

标题: 请教一个非常基础的python,有图文 [打印本页]

作者: abong153    时间: 2017-11-3 15:56
标题: 请教一个非常基础的python,有图文
[attach]48605[/attach]我预想本来会有大概六个圆球,为啥最后只出来一个?


import rhinoscriptsyntax as rs
mp=rs.WorldXYPlane()
yuan=rs.AddCircle(mp,5)
a=yuan
di=rs.DivideCurve(a,10)
b=di
c=di[3:9]
for i in range(len(c)):
    qiu=rs.AddSphere(c,0.5)
d=qiu

作者: KFC    时间: 2017-11-3 21:53
本帖最后由 KFC 于 2017-11-3 22:02 编辑

[attach]48607[/attach]
作者: 月之眼    时间: 2017-11-3 21:55
因为gh里的物体是ghdoc里生成的,你需要使用一个list去装最后生成的物体,不然自会显示最后计算的一个物体。
  1. import rhinoscriptsyntax as rs
  2. mp=rs.WorldXYPlane()
  3. yuan=rs.AddCircle(mp,5)
  4. a=yuan
  5. di=rs.DivideCurve(a,10)
  6. b=di
  7. c=di[3:9]
  8. list = []
  9. for i in range(len(c)):
  10.     qiu=rs.AddSphere(c,0.5)
  11.     list.append(qiu)
  12. d=list
复制代码



作者: abong153    时间: 2017-11-4 09:53
KFC 发表于 2017-11-3 21:53

谢谢大神解答~
作者: abong153    时间: 2017-11-4 09:55
月之眼 发表于 2017-11-3 21:55
因为gh里的物体是ghdoc里生成的,你需要使用一个list去装最后生成的物体,不然自会显示最后计算的一个物体 ...

for i in range(len(c)):
    qiu=rs.AddSphere(c,0.5)
    list.append(qiu)


这里变量i怎么只出现一次,括号里应该是i?
作者: 月之眼    时间: 2017-11-4 13:53
本帖最后由 月之眼 于 2017-11-4 13:59 编辑
abong153 发表于 2017-11-4 09:55
for i in range(len(c)):
    qiu=rs.AddSphere(c,0.5)
    list.append(qiu)

肯定是i啊,不然你循环他干啥,我是直接在你代码上改的,没看见你这里写错了
作者: 月之眼    时间: 2017-11-4 14:02
演示一种更简单的写法,利用列表解析,让代码更加简洁

作者: abong153    时间: 2017-11-4 17:43
月之眼 发表于 2017-11-4 14:02
演示一种更简单的写法,利用列表解析,让代码更加简洁

原来这个for in 还能用在中括号里
作者: abong153    时间: 2017-11-4 17:47
月之眼 发表于 2017-11-4 13:53
肯定是i啊,不然你循环他干啥,我是直接在你代码上改的,没看见你这里写错了

谢谢~没有基础初学python真是步步艰难
作者: WTER-A-STO    时间: 2017-11-8 10:33
abong153 发表于 2017-11-4 17:47
谢谢~没有基础初学python真是步步艰难

楼主学python是在哪学的,??我也想接触
作者: abong153    时间: 2017-11-10 12:03
WTER-A-STO 发表于 2017-11-8 10:33
楼主学python是在哪学的,??我也想接触

网上的python教程已经多的快扑出来了,随便搜索就有一大堆了
作者: funnyplay    时间: 2018-1-3 23:46
两种写法选其一:
for i in range(len(c)):
    qiu=rs.AddSphere(c[i],0.5)

for i in c:
    qiu=rs.AddSphere(i,0.5)




欢迎光临 NCF参数化建筑论坛 (http://www.ncf-china.com/) Powered by Discuz! X3.2