Python学习的第十天,好些天没有学习python了。4月6号下午回武汉了,从汉口火车站下车,车站弥漫着消毒水的味道,有些疫情防控人员全副武装,有些工作人员引导我们扫码入地铁站,安静而肃杀的氛围,从没见过如此安静的武汉,回想过去的两个月武汉真是英雄的城市,进了地铁发现人不多,公交车转乘到住的小区,扫码登记进去了。今天主要学习如何使用类class管理复杂程序。
写一个程序去计算孟德尔的豌豆实验中的表型不一个简单的事情。你需要定义每个豌豆的基因型,基因型对应的变性以及下一代如何产生等事件。尽管包含的科学是琐碎的,但它需要的程序代码却是复杂的。类class是一种编程结构,它有助于描述现实世界中事物的工作方式,并能控制复杂性。
1. 演示和计算孟德尔遗传定律
class Pea:
def __init__(self, genotype):
self.genotype = genotype
def get_phenotype(self):
if "G" in self.genotype:
return "yellow"
else:
return "green"
def creat_offspring(self, other):
offspring = []
new_genotype = ""
for haplo1 in self.genotype:
for haplo2 in other.genotype:
new_genotype = haplo1 + haplo2
offspring.append(Pea(new_genotype))
return offspring
def get_tab_separated_text(self):
return '%s\t%s' % (self.genotype, self.get_phenotype())
def __repr__(self):
return '(%s)' % self.genotype + '-----' + self.get_phenotype()
yellow = Pea("GG")
print(yellow.genotype)
GG
print(yellow.get_phenotype())
yellow
print(yellow)
(GG)-----yellow
# GG * gg
f1 = yellow.create_offspring(green)
print(f1[0])
(Gg)-----yellow
print(f1[1])
(Gg)-----yellow
# Gg * Gg
f2 = f1[0].create_offspring(f1[1])
print(f1)
print(f2)
[(Gg)-----yellow, (Gg)-----yellow, (Gg)-----yellow, (Gg)-----yellow]
[(GG)-----yellow, (Gg)-----yellow, (gG)-----yellow, (gg)-----green]
for pea in f2:
print(pea.get_tab_separated_text())
GG yellow
Gg yellow
gG yellow
gg green
网友评论