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第一阶段学习总结 -> 正文阅读

[Python知识库]Python第一阶段学习总结

【第20天】Python第一阶段学习总结

2021/10/15

一. 面向对象编程–代码的复用

1. 方法一:继承

  1. 通过继承来是实现对已有代码的复用
  2. object是所有类的父类
# 自定义列表
# 方法一:继承list类,再添加我们需要的方法

class MyList(list):
    """自定义列表"""

    def __init__(self, *args):
        super().__init__()
        for value in args:
            self.append(value)

    def append(self, value):
        # if type(value) not in (int, float):
        if not isinstance(value, (int, float)):
            raise ValueError('只能追加int或float类型的元素')
        super().append(value)

    def insert(self, index, value):
        # if type(value) not in (int, float):
        if not isinstance(value, (int, float)):
            raise ValueError('只能插入int或float类型的元素')
        super().insert(index, value)

    def mean(self):
        """均值"""
        return sum(self) / len(self)

    def median(self):
        """中位数"""
        length = len(self)
        sorted_list = sorted(self)
        if length % 2:
            return sorted_list[length // 2]
        return (sorted_list[length // 2 - 1] + sorted_list[length // 2]) / 2

    def std(self):
        """标准差(standard deviation)"""
        return self.var_s() ** 0.5

    # def var_p(self):
    #     """总体方差(population variance)"""
    #     pass

    def var_s(self):
        """样本方差(sample variance)"""
        x_bar = self.mean()
        return sum([(x - x_bar) ** 2 for x in self]) / (len(self) - 1)


nums = MyList(1, 2, 3, 4, 5)
print(nums)
nums.append(8)
nums.insert(0, 7)
print(nums)
nums += [8, 12, 15]
print(nums)
print(sorted(nums))
print('均值:', nums.mean())
print('中位数:', nums.median())
print('方差:', nums.var_s())
print('标准差:', nums.std())

2. 方法二:委派关系

  1. 通过委派关系(关联关系)实现对象代码的复用
# 自定义列表
# 方法一:继承list类,再添加我们需要的方法

class ThyList:

    def __init__(self, *args):
        self.container = []
        for value in args:
            self.append(value)

    def append(self, value):
        if not isinstance(value, (int, float)):
            raise ValueError('只能追加int或float类型的元素')
        self.container.append(value)

    def insert(self, index, value):
        if not isinstance(value, (int, float)):
            raise ValueError('只能插入int或float类型的元素')
        self.container.insert(index, value)

    def mean(self):
        """均值"""
        return sum(self.container) / len(self.container)

    def median(self):
        """中位数"""
        length, sorted_list = len(self.container), sorted(self.container)
        if length % 2 != 0:
            return sorted_list[length // 2]
        return (sorted_list[length // 2 - 1] + sorted_list[length // 2]) / 2

    def std(self):
        """样本标准差(standard deviation)"""
        return self.var() ** 0.5

    def var(self):
        """样本方差(variance)"""
        x_bar = self.mean()
        return sum([(x - x_bar) ** 2 for x in self.container]) / (len(self.container) - 1)

    def __repr__(self):
        return self.container.__repr__()


nums = ThyList(1, 2, 3, 4, 5)
print(nums)
nums.append(100)
nums.insert(0, 200)
print(nums)
print('均值:', nums.mean())
print('中位数:', nums.median())
print('方差:', nums.var())
print('标准差:', nums.std())

二. 三方库的应用

1. PyQt5

import sys

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox


def close_window():
    reply = QMessageBox.question(window, 'Message',
                                 "Are you sure to quit?", QMessageBox.Yes |
                                 QMessageBox.No, QMessageBox.No)

    if reply == QMessageBox.Yes:
        app.quit()


app = QApplication(sys.argv)

window = QWidget()
window.resize(1000, 800)
window.setWindowTitle('My First App')

button = QPushButton('Hit Me!', window)
button.setToolTip('这是一个按钮')
button.resize(100, 30)
button.move(100, 100)
button.clicked.connect(close_window)

window.show()

sys.exit(app.exec())

2. pyecharts

# 柱状图
from pyecharts.charts import Bar

bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
bar.add_yaxis("商家B", [15, 21, 13, 55, 32, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render('sales.html')
# 饼状图
import pyecharts.options as opts
from pyecharts.charts import Pie

x_data = ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"]
y_data = [335, 310, 274, 235, 400]
data_pair = [list(z) for z in zip(x_data, y_data)]
data_pair.sort(key=lambda x: x[1])
print(data_pair)

(
    Pie(init_opts=opts.InitOpts(width="1600px", height="800px", bg_color="#2c343c"))
    .add(
        series_name="访问来源",
        data_pair=data_pair,
        rosetype="radius",
        radius="55%",
        center=["50%", "50%"],
        label_opts=opts.LabelOpts(is_show=False, position="center"),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="Customized Pie",
            pos_left="center",
            pos_top="20",
            title_textstyle_opts=opts.TextStyleOpts(color="#fff"),
        ),
        legend_opts=opts.LegendOpts(is_show=False),
    )
    .set_series_opts(
        tooltip_opts=opts.TooltipOpts(
            trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"
        ),
        label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"),
    )
    .render("customized_pie.html")
)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:36:13  更:2021-10-16 19:37:57 
 
开发: 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年11日历 -2024/11/15 21:02:10-

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