如何使用Python解锁星河远征军的科幻旅途

启程星辰大海

大宇宙航海时代,身为人类世界探索未知的拓荒者代表,欢迎您加入星际远征军的队伍。首先,完成机甲系统的交接仪式:请输入您的姓名与此次远征的梦想并且激活您的随身机甲

class Robot:# 类的创建
    def __init__(self,name):# 类的初始化方法
        self.name=name	    # 实例属性的创建
                            # 类属性的创建
        self.master=input('主人您好,请问我应该如何称呼您?')  # 初始化中的语句
        
    def swearing(self):		 # 实例方法的创建
        print('{}您好,{}愿成为您手中的利剑,并宣誓毕生效忠于您'.format(self.master,self.name))# 方法的具体语句
        self.dream=input('{}您有什么愿望需要我帮您实现?'.format(self.master))
     
    def action(self):
        print((self.master+'的愿望是'+self.dream+' \n')*3)
    
robot1=Robot('绝影机甲007号') # 类的实例化
robot1.swearing()			  # 实例方法的调用
robot1.action()

我们此次星际远征军的首要目标是:

# 如何在Markdown下更改字体相关信息
<font face="黑体">我是黑体字</font>
<font face="微软雅黑">我是微软雅黑</font>
<font face="STCAIYUN">我是华文彩云</font>
<font color=#0099ff size=7 face="黑体">color=#0099ff size=72 face="黑体"</font>
<font color=#00ffff size=72>color=#00ffff</font>
<font color=gray size=72>color=gray</font>
  • 完善星图系统:可以一键查询星图中所有星球的基本信息与是否有人居住
  • 添加探索到的未知星球:输入星球的基本信息
  • 拓荒星系:当星球的状态显示为环境恶劣时,我们不可以随便在该星球上建立移民基地,需要进行环境改造
  • 星际移民:当星球的环境改造已完成时,我们可以进行星际移民

根据需求,我们设定的框架如下:

class CelestialBody:
	def __init__(self):
	# 对实列初始化
class MapManager:
	def menu(self):
	# 显示选择菜单
	def show_all_star(self):
	# 显示星球信息
	def add_star(self):
	# 添加新的星球坐标
	def envir_star(self):
	# 星球环境改造
	def build_star(self):
	# 建立远征军基地

在这里插入图片描述

定义CelestialBody类

class CelestialBody:
#我们可以利用初始化方法__init__,让实例被创建时自动获得属性。
    def __init__(self,name,position,sent,state=0):
        self.name=name
        self.pose=position
        self.sent=sent
        self.state=state#为了后续方便参数传递,状态state采用默认参数,用0来表示'环境恶劣',1来表示'环境适宜'。


star = CelestialBody('天狼星','System:8.60 ± 0.04 ly(2.64 ± 0.01 pc)','青云衣兮白霓裳,举长矢兮射天狼','无人')
print(star.sent)

显示星球具体信息

class CelestialBody:
#我们可以利用初始化方法__init__,让实例被创建时自动获得属性。
    def __init__(self,name,position,sent,state=0):
        self.name=name
        self.pose=position
        self.sent=sent
        self.state=state#为了后续方便参数传递,状态state采用默认参数,用0来表示'环境恶劣',1来表示'环境适宜'。
    def show_info(self):
        if self.state == 0:
            status = '环境恶劣'
        else:
            status = '环境适宜'
        return '星球名称:%s  星球距离母星:%s  星球通信密码:%s  该星球%s' % (self.name, self.pose, self.sent, status)
star = CelestialBody('天狼星','System:8.60 ± 0.04 ly(2.64 ± 0.01 pc)','青云衣兮白霓裳,举长矢兮射天狼',0)
print(star.show_info())  

显示结果如下:

星球名称:天狼星  
星球距离母星:System:8.60 ± 0.04 ly(2.64 ± 0.01 pc)  
星球通信密码:青云衣兮白霓裳,举长矢兮射天狼  
该星球环境恶劣

我们可以利用def __str__(self)直接打印出星球信息

def __str__(self):
        if self.state == 0:
            status = '环境恶劣'
        else:
            status = '环境适宜'
        return '星球名称:%s  星球距离母星:%s  星球通信密码:%s  该星球%s' % (self.name, self.pose, self.sent, status)
star = CelestialBody('天狼星','System:8.60 ± 0.04 ly(2.64 ± 0.01 pc)','青云衣兮白霓裳,举长矢兮射天狼',0)
print(star)  #无须再调用方法,直接打印

人机交互界面的设置

远征军的星图系统怎么能没有人机交互界面的设置呢?

class MapManager:

    def menu(self):
        print('''远征军的各位,欢迎使用肥鼠博士一手打造的星图系统,
        		 宇宙茫茫星系,未知的疆域等待您的探索
        		 希望远征军的各位有缘发现适宜人类的栖息星球。''')
        while True:
            print('1.查询所有星球信息\n2.添加未知星球\n3.环境改造\n4.建立基地\n5.退出星图系统\n')
            choice = int(input('请输入数字选择对应的功能:'))
            if choice == 1:
                self.show_all_star()
                # 调用对象方法时self不能忘
            elif choice == 2:
                self.add_star()
            elif choice == 3:
                self.envir_star()
            elif choice == 4:
                self.build_star()
            elif choice == 5:
                print('星图系统关闭')
                break

下一步,我们需要一个一个功能的来实现:

class MapManager:

    stars = []

    def __init__(self):
        star1 = CelestialBody('天狼星','System:8.60 ± 0.04 ly(2.64 ± 0.01 pc)','青云衣兮白霓裳,举长矢兮射天狼',0)
        star2 = CelestialBody('北落师门','大约25光年','北落师门一星,在羽林西南。北者,宿在北方也;落,天之籓落也;师,众也;师门,犹军门也。长安城北门曰北落门,以象此也。',0)
        star3 = CelestialBody('轩辕十四','System:79.3 ± 0.7 ly(24.3 ± 0.2 pc)','王者之星:仁慈,悲悯万物苍生,柔生德,五行属土,咸化万物',1)
        self.stars.append(star1)
        self.stars.append(star2)
        self.stars.append(star3)

	def menu(self):
        print('''远征军的各位,欢迎使用肥鼠博士一手打造的星图系统,
        		 宇宙茫茫星系,未知的疆域等待您的探索
        		 希望远征军的各位有缘发现适宜人类的栖息星球。''')
        while True:
            print('1.查询所有星球信息\n2.添加未知星球\n3.环境改造\n4.建立基地\n5.退出星图系统\n')
            choice = int(input('请输入数字选择对应的功能:'))
            if choice == 1:
                self.show_all_star()

    def show_all_star(self):
        for star in self.stars:
        # self是实例对象的替身
            print(star)

manager = MapManager()
manager.menu()

添加新的星球坐标

def add_star(self):
        new_name = input('请命名未知星球:')
        new_pose=input('请输入星球距离母星的坐标:')
        new_sent=input('请输入星球通信密码:')
        new_state=int(input('环境是否对人友好0或1:'))
        newstar= CelestialBody(new_name,new_pose,new_sent,new_state)
        self.stars.append(new_star)
        print('录入成功!\n')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥鼠路易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值