python学习 - 设计模式 - 建造者模式实例代码

#!/usr/bin/python
# -*- coding:UTF-8 -*-
# @Software: PyCharm

"""
大话设计模式
设计模式——建造者模式
建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
特性: 指挥者(Director) 指挥 建造者(Builder) 建造 Product
建造者模式是在创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时适用的模式
"""

import abc

#建造者
class Builder(object):
    __metaclass__ = abc.ABCMeta

    @abc.abstractmethod
    def create_header(self):
        pass

    @abc.abstractmethod
    def create_body(self):
        pass

    @abc.abstractmethod
    def create_hand(self):
        pass

    @abc.abstractmethod
    def create_foot(self):
        pass

class Thin(Builder):
    def create_header(self):
        print '瘦子的头'

    def create_body(self):
        print '瘦子的身体'

    def create_hand(self):
        print '瘦子的手'

    def create_foot(self):
        print '瘦子的脚'

class Fat(Builder):
    def create_header(self):
        print '胖子的头'

    def create_body(self):
        print '胖子的身体'

    def create_hand(self):
        print '胖子的手'

    def create_foot(self):
        print '胖子的脚'

#指挥者
class Director(object):
    def __init__(self, person):
        self.person = person

    def create_preson(self):
        self.person.create_header()
        self.person.create_body()
        self.person.create_hand()
        self.person.create_foot()


if __name__ == "__main__":
    thin = Thin()
    fat = Fat()

    director_thin = Director(thin)
    director_fat = Director(fat)

    director_thin.create_preson()
    director_fat.create_preson()

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个Python数据预处理的代码实例。 假设我们有一个包含学生成绩的数据集,文件名为"grades.csv",数据格式如下: ``` Name,Math,English,Science Alice,90,85,92 Bob,80,75,88 Charlie,75,92,82 David,92,87,90 ``` 我们需要进行以下数据预处理操作: 1. 将文件读取为一个Pandas DataFrame。 2. 检查是否有缺失值。 3. 将每个科目的分数转换为百分制。 4. 计算每个学生的平均分。 5. 将每个学生的平均分按照从高到低排序。 6. 将处理后的数据保存为一个新文件。 下面是相应的代码实现: ```python import pandas as pd # 读取数据 df = pd.read_csv("grades.csv") # 检查是否有缺失值 if df.isnull().values.any(): print("Warning: There are missing values in the data.") # 将每个科目的分数转换为百分制 df["Math"] = df["Math"] / 100.0 * 100 df["English"] = df["English"] / 100.0 * 100 df["Science"] = df["Science"] / 100.0 * 100 # 计算每个学生的平均分 df["Average"] = df.mean(axis=1) # 将每个学生的平均分按照从高到低排序 df = df.sort_values(by=["Average"], ascending=False) # 保存处理后的数据为一个新文件 df.to_csv("processed_grades.csv", index=False) ``` 执行完上述代码后,将生成一个新的文件"processed_grades.csv",内容如下: ``` Name,Math,English,Science,Average David,92.0,87.0,90.0,89.66666666666667 Alice,90.0,85.0,92.0,89.0 Charlie,75.0,92.0,82.0,83.0 Bob,80.0,75.0,88.0,81.0 ``` 以上就是一个简单的Python数据预处理代码实例

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值