初学python,在编程中,应该如何一步一步着手,遵循一个合理的逻辑思维过程,培养良好的编程习惯,特此记录方便以后查阅。
小人开枪为例
1.定义主函数,控制整个程序流程:
def main():
"""用于控制程序流程
pass
if __name__ == '__main__':
main()
2.搭建框架。在主函数中用中文注释每一个步骤
def main():
# 1.创建一个小人对象
# 2.创建一把枪对象
# 3.创建一个bb弹对象
# 4.创建bb弹对象
# 5.小人把bb弹装入bb弹中
# 6.小人把bb弹装入枪中
# 7.创建一个敌人对象
# 8. 小人拿起枪
# 9.小人开枪射杀敌人
if __name__ == '__main__':
main()
3.顺着搭建的框架,依次设计类、创建对象
4.每写一个类的方法,都要注释""“写出该方法的功能是干什么的”""(类似于大框架),以及用#写出怎么分步实现的,怎么实现的,再去写实现的过程。
"""实例"""
class A:
def test(self):
"""进行测试"""
#1. 取出数据
XXXXXXXX
#2. 带入公式
XXXXXXXX
5.完成一个步骤之后,要习惯性的进行test
# 测试bb弹的信息
print(dan_jia)
# 测试枪的信息
print(某枪型号)
bb弹数量为:1/20
枪装有bb弹
此人有枪
完整代码
class Person():
"""人的类"""
def __init__(self, name):
self.name = name
self.hp = 100 #100血
def add_bullet(self,danjia_temp, bullet_temp):
# 给bb弹添加bb弹
danjia_temp.tianjia_bullet(bullet_temp)
def add_danjia(self,gun_temp, dan_jia_temp):
# 给枪添加bb弹
gun_temp.add_danjia(dan_jia_temp)
def own_gun(self, gun_temp):
"""拿枪"""
self.gun = gun_temp
def __str__(self):
return "此人有%s枪"%(self.gun.name)
def shot(self, target):
"""击杀敌人"""
self.gun.fire(target)
def diaoxue(self,shanghai_temp):
"""被打中掉血了"""
self.hp-=shanghai_temp
print("打中敌人了,敌人的血还剩下: %d"%self.hp)
class Gun():
"""枪的类"""
def __init__(self, name):
self.name = name
self.danjia = None
def add_danjia(self,dan_jia_temp):
#枪装入bb弹
self.danjia = dan_jia_temp
def __str__(self):
if self.danjia == None:
return "%s枪没有bb弹"%(self.name)
else:
return "%s枪装有bb弹"%(self.name)
def fire(self, target):
"""从bb弹中取出bb弹,然后让该bb弹打中敌人"""
#bb弹取出bb弹
zidan_temp = self.danjia.tanchu_bullet()
#用bb弹去打敌人
if zidan_temp:
zidan_temp.hurt(target)
class DanJia():
"""bb弹的类"""
def __init__(self, max_number):
self.max_number = max_number #bb弹的容量
self.bullet_list = [] #bb弹当前的bb弹数量
def tianjia_bullet(self,bullet_temp):
"bb弹添加bb弹"
self.bullet_list.append(bullet_temp)
def __str__(self):郑州妇科医院 http://www.sptdfk.com/
return "bb弹的bb弹数量为:%d/%d"%(len(self.bullet_list), self.max_number)
def tanchu_bullet(self):
#bb弹.弹出bb弹
if self.bullet_list:
return self.bullet_list.pop()
else:
print("很遗憾,没有bb弹...")
return None
class Bullet():
def __init__(self):
self.shanghai = 10
def hurt(self, target):
target.diaoxue(self.shanghai)
def main():
# 1.创建一个小人对象
xiaoren = Person("xiaoren")
# 2.创建一把枪对象
某枪型号 =Gun("型号")
# 3.创建一个bb弹对象
dan_jia = DanJia(20) #属性:bb弹能装20颗bb弹
# 4.创建bb弹对象
bullet = Bullet()
# 5.小人人把bb弹装入bb弹中
xiaoren.add_bullet(dan_jia, bullet)
# 6.小人把bb弹装入枪中
xiaoren.add_danjia(某枪型号, dan_jia)
# 7.创建一个敌人对象
enermy = Person("enermy")
# 测试bb弹的信息
# print(dan_jia)
# 测试枪的信息
# print(某枪型号)
# 8. 小人拿起枪
xiaoren.own_gun(某枪型号)
#测试人
# print(xiaoren)
# 9.小人开枪射杀敌人
xiaoren.shot(enermy)
if __name__ == '__main__':
main()