开始做《统计思维》的练习题,貌似作者为写本书,自己开发了很多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