Python编写n体问题代码报错AttributeError: 'int'对象无append属性如何解决
问题根因
你的代码存在变量名冲突的低级错误:
- 第一行你将
Bodies赋值为整数25,而append()是Python列表对象的专属方法,整数类型不存在该方法,因此调用时直接报错 - 后续循环中
range(0, Bodies)的参数要求是整数,如果你后续把Bodies改成列表,这一步也会触发参数类型错误
修正方案
把「天体总数量」和「存储天体对象的列表」拆分成两个不同命名的变量即可,参考修改后的代码:
import random # 定义天体总数量的整数变量 body_count = 25 # 初始化存储天体对象的空列表 Bodies = [] # 添加初始天体 Bodies.append(Body(1000, 350, 350, [0,0])) # 循环生成剩余天体,用body_count作为循环次数上限 for i in range(0, body_count): Bodies.append(Body( random.randrange(10, 500), random.randrange(50, 650), random.randrange(50, 650), [(random.randrange(-10,10)/20), (random.randrange(-10,10)/20)] ))
补充说明
如果不需要保留最开始单独添加的那个天体,直接调整循环次数生成对应数量的天体即可,可根据你n体问题的实际需求调整参数。
内容的提问来源于stack exchange,提问作者Brepfen
相关产品推荐
相关产品推荐

