开始做统计思维的练习题,貌似作者为写本书,自己开发了很多Python基础库,你得对这些代码有一定了解,所以,这本书的学习还是有一定挑战度的,不会Python,至少来说你的练习就做不下去了,咳,幸好我也是Pythonic,只是很久不用了就是......

习题1.3共四小点作业,题目字数太多,就免了。原以为只要答案写出来就好了,就按字面要求简单写了个循环,没太过用到Python的技巧(毕竟这本书关键在于概率统计),写完了看看作者的代码,哇噻,他整整写了107行代码、6个函数,上他当了捏......,我的有效代码估计就10行左右吧。

直接上我的代码,里面有注释了。

#coding=utf-8

import survey

table = survey.Pregnancies()
table.ReadRecords()
print '怀孕记录数:', len(table.records)

# 计算活婴的数量
outcome_num = 0
# 活婴中第一胎的数量
birthord_num = 0
# 活婴中第一胎的怀孕周期总期数(周)
birthord_prg_num = 0.00
# 活婴中非第一胎的数量
birthord_excl_num = 0
# 活婴中非第一胎的怀孕周期总期数(周)
birthord_excl_prg_num = 0.00
for record in table.records:
    if record.outcome == 1:
        outcome_num += 1
        if record.birthord == 1:
            birthord_num += 1
            birthord_prg_num += record.prglength
        else:
            birthord_excl_num += 1
            birthord_excl_prg_num += record.prglength
print '活婴数量:', outcome_num
print '活婴中第一胎的数量:', birthord_num
print '活婴中第一胎的怀孕周期总期数:', birthord_prg_num
print '活婴中第一胎的平均怀孕周期:', birthord_prg_num/birthord_num
print '活婴中非第一胎的数量:', birthord_excl_num
print '活婴中非第一胎的怀孕周期总期数:', birthord_excl_prg_num
print '活婴中非第一胎的平均怀孕周期:', birthord_excl_prg_num/birthord_excl_num
print '平均怀孕周期差距(单位:天,第一胎 - 非第一胎):', (birthord_prg_num/birthord_num - birthord_excl_prg_num/birthord_excl_num) * 7

运行结果:

怀孕记录数: 13593
活婴数量: 9148
活婴中第一胎的数量: 4413
活婴中第一胎的怀孕周期总期数: 170346.0
活婴中第一胎的平均怀孕周期: 38.6009517335
活婴中非第一胎的数量: 4735
活婴中非第一胎的怀孕周期总期数: 182406.0
活婴中非第一胎的平均怀孕周期: 38.5229144667
平均怀孕周期差距(单位:天,第一胎 - 非第一胎): 0.546260867443

我的博客