斜体文本可以跳过。在
首先:如果我要求的是基础知识,也很容易找到答案,或者任何类似的东西都可能让我的帖子让任何人讨厌,请原谅我。我对编程还不熟悉,刚开始编程只是为了找个借口不为考试而读书。 我正在尝试制作一个程序,可以模拟从一个人类部落进化到……嗯,一个更高级的人类部落。我的目标是让未来的建筑和建筑变得更简单。从零开始,现在对编程一无所知,我知道这是一个我可能永远无法完成的任务。希望我能在路上学到一些东西。 因为我的知识是如此有限,我的问题将是笨拙的和糟糕的表达。对不起,谢谢你的阅读。
当前的问题: 我创建了一个类,它生成的对象应该代表人。在
现在的班级是这样的:
class Settler:
settlerCount = 0
iqlistfemale = []
iqlistmale = []
maleCount = 0
femaleCount = 0
surnameMale = []
surnameFemale = []
def __init__(self, sex):
if sex=="m" or sex=="f" or sex=="M" or sex=="F":
self.name = choice(surnames)
Settler.settlerCount += 1
self.iq=round(random.normalvariate(100,10))
if sex=="m" or sex=="M":
self.sex = "Male"
Settler.iqlistmale=Settler.iqlistmale+[self.iq]
Settler.surnameMale += [self.name]
Settler.maleCount += 1
else:
self.sex = "Female"
Settler.iqlistfemale=Settler.iqlistfemale+[self.iq]
Settler.surnameFemale += [self.name]
Settler.femaleCount += 1
以后它会包含更多的属性,这只是一个开始。在
我还做了一个循环,要求你创造一个雄性,然后再创造一个雌性。在
循环是这样的:
^{pr2}$另外,我还做了一个def工具,允许您调用有关对象属性的信息:
def displaySettler(self):
print("Name:", self.name, "Sex:", self.sex, "IQ:", self.iq)
现在,对于以下问题:
我找到了一种将数字组合成字符串的方法,它可以让我将一个创建对象名的系统放入循环中,该系统可以创建像settler1、settler2、settler3之类的对象名,但是我这样做的方法是
x=settler
y=(some counter)
z=x+str(y)
这是我能用的东西吗?我知道创建带有名称的对象的唯一方法是编写类似
settler1=Settler("F")
或者
w=Settler("F")
可以用变量z的内容来命名吗?在
有没有可能直接从对象中得到这些值,然后直接遍历所有对象,然后从中计算出平均值?在
或者换一种说法:如果我有200个物体,有没有办法把所有物体的智商加在一起?在
谢谢你的阅读(如果有人能做到这一点)。我们将非常感谢所有建设性的反馈。在
两件事:
1)最好有两个不同的类,男性和女性,它们都扩展了基类
Settler
。这样就避免了大部分if sex = M then this else that
的东西示例:
注意这两个类如何使用
__str__
以字符串形式“表示”自己。在2)将与对象列表有关的所有内容保持在对象定义之外。好东西不知道外面发生了什么。例如,以下是如何生成人员列表:
^{pr2}$[stuff for _ in range(N)]
基本意思是“做N次事情”。在最后,让我们把它们放在一起,打印出一份人员名单:
输出如下:
如果您有更多问题,请告诉我们。在
您需要让您的人员生成器在数据结构(如列表或字典)中记录生成的人员,然后从创建的结构中访问这些人员。代替
while
循环,请尝试:然后您可以使用:
^{pr2}$为了回答您的第二个问题,假设您有一个名为
people
的定居者列表(这是一个列表理解)。。。在相关问题 更多 >
编程相关推荐