栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python习题#讲解7

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python习题#讲解7

·day07

1.Game 案例完成
定义一个游戏类 Game, 包含 属性 玩家名字
1)要求记录游戏的最高分(top_score 类属性)和获得最高分的玩家名字(top_score_player)
2)定义方法: show_help 显示游戏的帮助信息 输出这是游戏的帮助信息
3)定义方法: show_top_score, 打印输出游戏的最高分
4)定义方法: start_game, 开始游戏, 规则如下
          1. 使用随机数获取本次游戏得分 范围 (10 - 100 )之间
          2. 判断本次得分和最高分之间的关系
                   - 如果本次得分比最高分高,
                   - 修改最高分和获得最高分的玩家名字
                   - 如果分数小于等于最高分,则不操作
          3. 输出本次游戏得分

5)主程序步骤
          1. 查看游戏的帮助信息
          2. 查看当前的最高分
          3. 创建一个玩家小王,玩一局游戏, 输出当前最高分和玩家名字
          4. 创建一个玩家小李,玩一局游戏, 输出当前最高分和玩家名字
          5. 创建一个玩家小张,玩一局游戏, 输出当前最高分和玩家名字

方法1:游戏系统【整体系统】

import random
#1.创建一个Game类
class Game:
    # 2.定义两个类属性(记录最高分和记录最高分玩家)并赋默认值
    top_score = 0
    top_score_player = '暂时无人上榜'
    #3.定义方法: __init__;实例属性:player_name
    def __init__(self, player_name):
        self.player_name = player_name
    # 4.定义静态show_help帮助方法
    @staticmethod
    def show_help():
        print("这是游戏的帮助信息!")
    #5.定义类方法show_top_score(用于打印记录最高分和玩家信息)
    @classmethod
    def show_top_score(cls):
        print(f'最高分:{cls.top_score},玩家:{cls.top_score_player}')
    #6.定义start_game开始游戏方法动作
    def start_game(self):
        print(f"玩家:{self.player_name}开始游戏")
        #6.1获取随机值10到100赋予分数玩家本次得分
        player_score = random.randint(10, 100)
        print(f'玩家:{self.player_name}本次游戏得分:{player_score}分。')
        #6.2如果随机值分>记录最高分
        #那么随机值分赋值给记录最高分
        # 并将此玩家姓名赋值给记录最高分玩家
        if player_score > self.top_score:
            Game.top_score = player_score
            Game.top_score_player = self.player_name
#7.while无限循环打印0.1.2.3.游戏项目
while True:
    print('******************************************')
    print('******欢迎来到Game系统首页******')
    print(f'0.退出游戏n1.查看帮助信息n2.查看历史最高分n3.创建游戏对象,开始游戏')
    print('-----------------------------------------')
    #8.输入值赋值给变量名select选择
    select = input('请输入选择:')
    print('******************************************')
    #8.1如果变量名select等于0就break退出循环
    if select == '0':
        break
    # 8.1如果select等于1就类名.show_help()调用4.帮助方法
    elif select == '1':
        Game.show_help()
    # 8.2如果select等于2就类名.show_top_score()调用5.记录方法
    elif select == '2':
        Game.show_top_score()
    # 8.2如果select等于3就提示请输入游戏玩家姓名
    elif select == '3':
        player_name = input('请输入游戏玩家姓名:')
        #8.4创建对象:game||对象=类(属性值)||将input的值当属性值
        #8.5调用方法||对象.方法||调用6.开始游戏动作方法
        game = Game(player_name)
        game.start_game()
    else:
        print('输入指令不正确')


如果注释能耐心看完,应该就能懂了
注释很多:密集恐惧症不建议围观
可以一小段一小段的看

最后的个人见解:
小系统目录就是一个while无限循环
循环中赋一些if条件

关于变量名select:见名知意:选择
1.其中select是变量名可以变的
可以将select单词改成sel,a,b,cd等都行

2.if==后的比较值也可以改变(自定义)
可以==0变为=='退出',=='退退'

主要input赋的值==自定义的值当if条件
3.if条件==满足然后执行哪些代码
最后共勉+n

方法2:这个更简洁

import random
class Game:#1.创建一个Game类定义两个类属性
    topScore = 0
    topScoreName = "暂无上榜"
    def __init__(self, name):#3.定义方法和实例属性
        self.player_name = name
    @staticmethod# 4.定义帮助方法
    def showHelp():
        print("这是游戏帮助信息!")
    @classmethod#5.定义类方法show
    def show_top_score(cls):#打印最高记录
        print(f"最高分:{Game.topScore}tt玩家 :{Game.topScoreName}")
    def startGame(self):#6.定义开始游戏动作随机值赋予score
        score = random.randint(10, 100)#打印玩家本次得分
        print(f"玩家{self.player_name},本次游戏得分{score}")
        if score > self.topScore:#6.2如果随机值分>记录最高分
            Game.topScore = score        #那么随机值分赋值给记录最高分
            Game.topScoreName = self.player_name # 并将此玩家姓名赋值给记录最高分玩家
            print("打破记录啦")
            Game.show_top_score()#显示最高分记录
            print('-------------------------------------')
Game.showHelp()#1调用帮助方法
Game.show_top_score()#2调用最高记录方法
game1 = Game("小王")#3玩家赋值
game1.startGame()#4调用开始游戏方法
game1 = Game("小李")
game1.startGame()
game1 = Game("小张")
game1.startGame()
game1.show_top_score()#5显示最高记录方法

2.按如下要求完成代码的编写:
        1). 定义一个Person类,包含姓名和年龄属性,要求姓名是公有属性,年龄是私有属性
        2). 提供获取私有属性的公有方法 get_age方法
        3). 提供可以设置私有属性的set_age方法,
        要求如果输入的年龄在 0--120 之间,设置年龄,否则提示输入不正确
        4). 重写 __str__ 要求打印对象时,把姓名和年龄都打印出来

class Person:
    def __init__(self,name,age):
        self.name = name
        # 1.定义age为私有属性__age
        self.__age = age
    #2)私有属性的公有方法 get_age方法:return获取__age的返回值
    def get_age(self):
        return self.__age
    #3)定义set_age方法:用于设置修改__age私有属性的值
    def set_age(self,age):
        if 0 <= age <= 120:
            self.__age = age
        else:
            print("年龄输入不正确!")
    # 重写__str__
    def __str__(self):
        return f"姓名:{self.name},年龄:{self.__age}"
#创建对象person并打印get_age方法
person = Person("at",24)
print(person.get_age())
# 调用set_age方法设置__age并打印对象
person.set_age(122)
print(person)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/849311.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号