IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python 基础语法练习小Demo -> 正文阅读

[Python知识库]Python 基础语法练习小Demo

反恐精英基础版

一个精英对一个匪徒。

分析

  1. 定义人类,描述公共属性 life:100name:姓名要传参
  2. 定义出英雄与恐怖分子类
  3. 定义主函数描述枪战过程 main,创建两个对象
  4. 定义开抢方法,分成两个方法,HeroIs 都有
    • 定义的方法要传入被射击的对象
    • 被射击对象的生命值要减少
  5. 主程序中调用开抢操作
  6. 开抢操作后,要在主程序中显示每个人的状态信息
  7. 定义 Person 类中的 __str__ 方法,用于显示每个人的状态
  8. 设置开抢操作为反复操作
    • 设置枪战停止条件:一方生命值<=0
    • 停止循环使用break

代码实现

class Person:
    def __init__(self, name):
        self.name = name
        self.life = 100

    def __str__(self):
        return "%s当前生命值为:[%d]" % (self.name, self.life)


class Hero(Person):
    def fire(self, person):
        damage = 40
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        person.life -= damage


class Is(Person):
    def fire(self, person):
        damage = 90
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        person.life -= damage


def main():
    h = Hero("【英雄】")
    is1 = Is("【不要命】")

    while True:
        h.fire(is1)
        is1.fire(h)
        print(h)
        print(is1)
        print()
        # 结束枪战
        if h.life <= 0:
            print("%s死亡,枪战结束" % h.name)
            break

        # 结束枪战
        if is1.life <= 0:
            print("所有恐怖分子全部死亡,枪战结束")
            break


# 执行主函数
main()

反恐精英修复版

分析

  1. 修复英雄的信息显示模式,状态描述
    • 100:无伤
    • 70-99:轻伤
    • 1-69:重伤
    • 0:挂了
  2. 修复生命值为负的问题
    • 射击时,如果生命值<伤害值,生命值=0,否则正常减生命
    • 三元表达式:变量 = 成立值 if 条件 else 不成立值

代码实现

class Person:
    def __init__(self, name):
        self.name = name
        self.life = 100

    def __str__(self):
        return "%s当前生命值为:[%d]" % (self.name, self.life)


class Hero(Person):
    def fire(self, person):
        damage = 40
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        # 三元表达式:变量 = 成立值 if 条件 else 不成立值
        person.life = 0 if person.life < damage else (person.life - damage)

    def __str__(self):
        state = ""
        if self.life == 100:
            state = "无伤"
        elif 70 <= self.life < 100:
            state = "轻伤"
        elif 1 <= self.life < 70:
            state = "重伤"
        elif self.life <= 0:
            state = "挂了"

        return "%s当前的状态为:%s" % (self.name, state)


class Is(Person):
    def fire(self, person):
        damage = 20
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        person.life = 0 if person.life < damage else (person.life - damage)


def main():
    h = Hero("【英雄】")
    is1 = Is("【不要命】")

    while True:
        h.fire(is1)
        is1.fire(h)

        print(h)
        print(is1)
        print()

        # 结束枪战
        if h.life <= 0:
            print("%s死亡,枪战结束" % h.name)
            break

        # 结束枪战
        if is1.life <= 0:
            print("所有恐怖分子全部死亡,枪战结束")
            break


# 执行主函数
main()

反恐精英加强版

一个精英对三个匪徒。

分析

  1. 创建三个恐怖分子对象,三个对象都要开抢,三个对象都要打印状态
  2. 修复结束条件为三个恐怖分子都死亡,三个满足同时死亡 and
  3. 解决向三个恐怖分子开抢的问题
    • 随机数:random
      1. 使用random:所有代码前增加 import random
      2. 使用 random.randint(1, 3) 可以产生1到3的随机数
    • 产生一个随机数,判断是几就向几号敌人开枪

代码实现

反恐精英超级加强版

分析

  1. 加入开枪射击命中率
  2. 加入开枪伤害值波动
  3. 加入鞭尸文字显示效果

代码实现

import random


class Person:
    def __init__(self, name):
        self.name = name
        self.life = 100

    def __str__(self):
        return "%s当前生命值为:[%d]" % (self.name, self.life)


class Hero(Person):
    def fire(self, person):
        # 增加命中率
        hit = random.randint(1, 100)
        # 80% 命中率
        if hit > 20:
            # 增加鞭尸判断
            if person.life <= 0:
                print("%s都死了,就不要鞭尸了" % person.name)
            else:
                # 加入伤害波动值
                damage = random.randint(41, 60)
                print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
                # 三元表达式:变量 = 成立值 if 条件 else 不成立值
                person.life = 0 if person.life < damage else (person.life - damage)
        else:
            print("没有打到恐怖分子,这什么垃圾枪法~~~")

    def __str__(self):
        state = ""
        if self.life == 100:
            state = "无伤"
        elif 70 <= self.life < 100:
            state = "轻伤"
        elif 1 <= self.life < 70:
            state = "重伤"
        elif self.life <= 0:
            state = "挂了"

        return "%s当前的状态为:%s" % (self.name, state)


class Is(Person):
    def fire(self, person):
        damage = random.randint(1, 20)
        # 增加命中率
        hit = random.randint(1, 100)
        # 30% 命中率
        if hit > 70:
            print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
            person.life = 0 if person.life < damage else (person.life - damage)
        else:
            print("%s枪法不行呀,再去练练吧~~~" % self.name)


def main():
    h = Hero("【英雄】")
    is1 = Is("【不要命】")
    is2 = Is("【不怕死】")
    is3 = Is("【还有谁】")

    while True:
        # 产生一个随机数
        x = random.randint(1, 3)
        if x == 1:
            h.fire(is1)
        elif x == 2:
            h.fire(is2)
        else:
            h.fire(is3)

        # 结束枪战
        if is1.life <= 0 and is2.life <= 0 and is3.life <= 0:
            print("所有恐怖分子全部死亡,枪战结束")
            break

        is1.fire(h)
        is2.fire(h)
        is3.fire(h)

        # 结束枪战
        if h.life <= 0:
            print("%s死亡,枪战结束" % h.name)
            break

        print(h)
        print(is1)
        print(is2)
        print(is3)
        print()


# 执行主函数
main()
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章           查看所有文章
加:2022-07-05 23:30:09  更:2022-07-05 23:31:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 1:29:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计