Python小项目:葛兰中欧医疗基金数据分析

1 前言

2022年1月末,正值年前,股票市场持续大幅下跌,与之相应的基金市场也出现了近一周的持续跌势。作为一个资深的投资者,我承认自己曾是一名“韭菜”,在2021年12月初购买了中欧医疗健康混合C基金。这只基金由医疗板块的佼佼者葛兰担任基金经理。尽管我听闻葛兰是医疗板块最杰出的基金经理之一,而医疗行业又是民生大计,当时我对这次投资有着极高的期望,期待着获得可观的收益。

然而,我购买这只基金后,却经历了一个月的持续下跌,导致我的投资亏损接近15%。为了改变这一局面,我不断学习有关基金的知识,希望通过数据分析的方法来量化我的购买决策,以科学的方式获取更多的收益。

2 数据采集/清洗

数据来源与所需数据 为了进行准确的数据分析,我们将从天天基金网获取必要的数据。以下是我们需要收集的数据:

  1. 中欧医疗健康混合C基金的历史净值和日涨幅数据。
  2. 同类型基金(医疗行业)的历史净值均值和日涨幅数据。
  3. 沪深300指数基金的历史净值和日涨幅数据。
  4. 中欧医疗健康混合C基金的用户评论数据。

针对中欧医疗健康混合C的历史净值以及日涨幅、同类型基金(医疗)的历史净值的均值以及日涨幅、沪深300指数基金历史净值以及日涨幅数据利用Python的requests库对天天基金网进行爬取。点击“基金档案”并搜索“中欧医疗健康混合C”可以看到基金净值的表格,网站截图如下所示:

在这里插入图片描述

并且通过天天基金网的板块检索选择与中欧医疗相似的七只基金,基金代码分别是007613、001563、003581、005043、007111、005044、110023。具体操作如下图所示:

在这里插入图片描述

2.1 数据采集

#导入相应的包
import requests
import re
import json
import pandas as pd

#爬取中欧医疗数据
df_list = []
for i in range(1,65):
    url = "http://api.fund.eastmoney.com/f10/lsjz?callback=jQuery18304159015262110892_1643544350831&fundCode=003096&pageIndex={}&pageSize=20&startDate=&endDate=&_=1643545365216".format(i)
    headers = {
        "Referer":"http://fundf10.eastmoney.com/jjjz_003096.html",
        "User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',
    }
    resp = requests.get(url,headers=headers)
    html = resp.text
    res = re.findall('\((.*?)\)',html)
    datas = json.loads(res[0])["Data"]["LSJZList"]
    df = pd.DataFrame(datas)
    df_list.append(df)
df_data = pd.concat(df_list)
df_data.to_csv('中欧医疗健康混合C (003096).csv',index=False,encoding="utf_8_sig")

#爬取同医疗类型基金数据并计算净值均值方便以后对比
same_type = ["007613","001563","003581","005043","007111","005044","110023"]
pages = [25,64,62,50,34,50,64]
df_list = []
for index in range(1,65):
    lis = []
    for i in range(0,7):
        if pages[i] >= index:
            lis.append(same_type[i])
        else:
            pass
    df1 = []
    for i in lis:
        url = "http://api.fund.eastmoney.com/f10/lsjz?callback=jQuery18304159015262110892_1643544350831&fundCode={}&pageIndex={}&pageSize=20&startDate=&endDate=&_=1643545365216".format(i,index)
        headers = {
        "Referer":"http://fundf10.eastmoney.com/jjjz_{}.html".format(i),
        "User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',
        }
        resp = requests.get(url,headers=headers)
        html = resp.text
        res = re.findall('\((.*?)\)',html)
        datas = json.loads(res[0])["Data"]["LSJZList"]
        df = pd.DataFrame(datas)
        df1.append(df)
    df_new = pd.concat(df1,keys=lis)
    df_list.append(df_new)
df_data = pd.concat(df_list)
df_data.to_csv('同类基金.csv',index=True,encoding="utf_8_sig")

#爬取沪深300指数净值
df_list = []
for i in range(1,65):
    url = "http://api.fund.eastmoney.com/f10/lsjz?callback=jQuery18304159015262110892_1643544350831&fundCode=050002&pageIndex={}&pageSize=20&startDate=&endDate=&_=1643545365216".format(i)
    headers = {
        "Referer":"http://fundf10.eastmoney.com/jjjz_050002.html",
        "User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0',
    }
    resp = requests.get(url,headers=headers)
    html = resp.text
    res = re.findall('\((.*?)\)',html)
    datas = json.loads(res[0])["Data"]["LSJZList"]
    df = pd.DataFrame(datas)
    df_list.append(df)
df_data = pd.concat(df_list)
df_data.to_csv('博时沪深300指数A (050002).csv',index=False,encoding="utf_8_sig")

2.2 数据清洗

import os 
import re
import math
import pandas as pd

df_base = pd.read_csv('中欧医疗健康混合C (003096).csv')
df_avg = pd.read_csv('同类医疗基金均值.csv')
df_300 = pd.read_csv('博时沪深300指数A (050002).csv')

def data_extraction(df,col): #df_avg的col=3,其余为6
    df_flashback = df.reindex(index=df.index[::-1])
    cumulative_growth = []
    sum_up = 0
    for i in range(0,1280):
        cod = float(df_flashback.iloc[i,col])
        sum_up += cod
        cumulative_growth.append(sum_up)
    
    data = {
        "FSRQ":pd.Series(df_flashback["FSRQ"].values),
        "DWJZ":pd.Series(df_flashback["DWJZ"].values),
        "JZZZL":pd.Series(df_flashback["JZZZL"].values),
        "DWZZL":pd.Series(cumulative_growth)
        
    }
    new_df = pd.DataFrame(data)
    return new_df

3 净值可视化

为了更好地理解中欧医疗基金的历史走势和业绩表现,我们将利用 pyecharts 结合 DataFrame 进行数据可视化。pyecharts 提供了强大的绘图方法,而 DataFrame 则作为数据的基础,让我们可以更方便地呈现分析结果。

(1)使用 DataFrame 进行图像绘制 在进行数据分析时,数据通常存储在 DataFrame 中,为了更好地使用这些数据进行图像绘制,我们可以结合 pyecharts 库,使用 DataFrame 的 plot 方法来进行图像绘制。通过这种方式,我们可以轻松地生成交互式图表,以及更好地展示数据之间的关系和变化。

(2)图表多样性 pyecharts 提供了各种图表类型,例如折线图、柱状图、散点图等,可以根据数据的性质和分析的需求选择合适的图表类型。同时,这些图表也支持交互功能,例如鼠标悬停、放大缩小等,使数据可视化更加生动和有趣。

通过净值可视化,我们可以更直观地观察中欧医疗基金的历史净值走势,与同类基金以及市场指数的对比情况。这将有助于我们更深入地了解基金的表现,从而为投资决策提供更多的依据。

中欧医疗健康混合C历史净值数据可视化

from eplot import eplot
df1 = pd.Series(data_extraction(df_base,6)['DWJZ'].values.tolist(),
                  index= data_extraction(df_base,6)['FSRQ'].values.tolist())
df1.eplot()

在这里插入图片描述

从可视化结果中可以明显看出,自2016年11月8日中欧医疗健康混合C基金成立之初,该基金在短时间内获得了显著的上涨,一直持续到2021年5月左右,净值达到了约4.5。然而,自2021年开始,该基金的净值开始连续下跌,这也是导致我亏损的主要原因之一。

中欧医疗健康混合C与其他基金对比

(1)中欧医疗成立以来涨幅对比

from pyecharts.charts  import Line #导入折线图
from pyecharts import options as opts 
line=(
    Line()
    .set_global_opts(
        tooltip_opts=opts.TooltipOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(type_="category"),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True),
        ),
    )
    .add_xaxis(xaxis_data=data_extraction(df_base,6)["FSRQ"].values.tolist())
    .add_yaxis(
        series_name="中欧医疗",
        y_axis=data_extraction(df_base,6)["DWZZL"].values.tolist(),
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="沪深300",
        y_axis=data_extraction(df_300,6)["DWZZL"].values.tolist(),
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="同类均值",
        y_axis=data_extraction(df_avg,3)["DWZZL"].values.tolist(),
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
)
line.render_notebook()

在这里插入图片描述

根据我们的数据可视化结果,可以清晰地看出中欧医疗基金的涨幅已经远远超过了同类基金的均值以及沪深300指数。这样的表现令人印象深刻,表明中欧医疗基金在过去的一段时间里取得了非常可观的业绩。

(2)近一年的涨幅对比

def data_extraction_year(df,col): #df_avg的col=3,其余为6
    df = df[0:366]
    df_flashback = df.reindex(index=df.index[::-1])
    cumulative_growth = []
    sum_up = 0
    for i in range(0,366):
        cod = float(df_flashback.iloc[i,col])
        cumulative_growth.append(sum_up)
        sum_up += cod
    
    data = {
        "FSRQ":pd.Series(df_flashback["FSRQ"].values),
        "DWJZ":pd.Series(df_flashback["DWJZ"].values),
        "JZZZL":pd.Series(df_flashback["JZZZL"].values),
        "DWZZL":pd.Series(cumulative_growth)
        
    }
    new_df = pd.DataFrame(data)
    return new_df

from pyecharts.charts  import Line #导入折线图
x = data_extraction_year(df_base,6)["FSRQ"].values.tolist()
y1 = data_extraction_year(df_base,6)["DWZZL"].values.tolist()
y2 = data_extraction_year(df_300,6)["DWZZL"].values.tolist()
y3 = data_extraction_year(df_avg,3)["DWZZL"].values.tolist()

line=(
    Line()
    .set_global_opts(
        tooltip_opts=opts.TooltipOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(type_="category"),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True),
        ),
    )
    .add_xaxis(xaxis_data=x)
    .add_yaxis(
        series_name="中欧医疗",
        y_axis=y1,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="沪深300",
        y_axis=y2,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="同类均值",
        y_axis=y3,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
)
line.render_notebook()

在这里插入图片描述

我们可以看出中欧医疗基金的涨跌幅度已经趋近于同类基金的均值以及市场指数的均值。这表明在近一年的时间里,中欧医疗基金的表现已经不如之前几年。虽然总体上来看,中欧医疗基金的涨幅仍然是可观的,超过了同类基金的均值以及市场指数的均值,但业绩下滑确实是不可忽视的事实。

(3)近三个月的涨幅对比

def data_extraction_month3(df,col): #df_avg的col=3,其余为6
    df = df[0:80]
    df_flashback = df.reindex(index=df.index[::-1])
    cumulative_growth = []
    sum_up = 0
    for i in range(0,80):
        cod = float(df_flashback.iloc[i,col])
        cumulative_growth.append(sum_up)
        sum_up += cod
    
    data = {
        "FSRQ":pd.Series(df_flashback["FSRQ"].values),
        "DWJZ":pd.Series(df_flashback["DWJZ"].values),
        "JZZZL":pd.Series(df_flashback["JZZZL"].values),
        "DWZZL":pd.Series(cumulative_growth)
        
    }
    new_df = pd.DataFrame(data)
    return new_df

from pyecharts.charts  import Line #导入折线图
x = data_extraction_month3(df_base,6)["FSRQ"].values.tolist()
y1 = data_extraction_month3(df_base,6)["DWZZL"].values.tolist()
y2 = data_extraction_month3(df_300,6)["DWZZL"].values.tolist()
y3 = data_extraction_month3(df_avg,3)["DWZZL"].values.tolist()

line=(
    Line()
    .set_global_opts(
        tooltip_opts=opts.TooltipOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(type_="category"),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True),
        ),
    )
    .add_xaxis(xaxis_data=x)
    .add_yaxis(
        series_name="中欧医疗",
        y_axis=y1,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="沪深300",
        y_axis=y2,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="同类均值",
        y_axis=y3,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
)
line.render_notebook()

在这里插入图片描述

从图可见中欧医疗的业绩已经远远不如同类均值以及市场均值,与此同时中欧医疗的基金规模不断的扩大。说明散户都认为这时是底部,大家都进行了抄底,但是由于美联储加息政策的出台,造成了情绪恐慌,市场下跌严重。而中欧医疗抗跌能力远远不及同类均值,造成了大量用户损失,这也是我损失的原因。

(4)近一个月的涨幅对比

def data_extraction_month(df,col): #df_avg的col=3,其余为6
    df = df[0:32]
    df_flashback = df.reindex(index=df.index[::-1])
    cumulative_growth = []
    sum_up = 0
    for i in range(0,32):
        cod = float(df_flashback.iloc[i,col])
        cumulative_growth.append(sum_up)
        sum_up += cod
    
    data = {
        "FSRQ":pd.Series(df_flashback["FSRQ"].values),
        "DWJZ":pd.Series(df_flashback["DWJZ"].values),
        "JZZZL":pd.Series(df_flashback["JZZZL"].values),
        "DWZZL":pd.Series(cumulative_growth)
        
    }
    new_df = pd.DataFrame(data)
    return new_df

from pyecharts.charts  import Line #导入折线图
x = data_extraction_month(df_base,6)["FSRQ"].values.tolist()
y1 = data_extraction_month(df_base,6)["DWZZL"].values.tolist()
y2 = data_extraction_month(df_300,6)["DWZZL"].values.tolist()
y3 = data_extraction_month(df_avg,3)["DWZZL"].values.tolist()

line=(
    Line()
    .set_global_opts(
        tooltip_opts=opts.TooltipOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(type_="category"),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True),
        ),
    )
    .add_xaxis(xaxis_data=x)
    .add_yaxis(
        series_name="中欧医疗",
        y_axis=y1,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="沪深300",
        y_axis=y2,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
    .add_yaxis(
        series_name="同类均值",
        y_axis=y3,
        symbol="emptyCircle",
        is_symbol_show=True,
        label_opts=opts.LabelOpts(is_show=False),
    )
)
line.render_notebook()

在这里插入图片描述

从图可见医疗板块在本次市场下跌中是下跌比较严重的板块,并且中欧医疗的抗跌能力非常差,由此可以推出这只基金最大回撤率非常的高。这是股票型基金的特点——大涨大跌。根据我稳健型的投资风格,我可能会放弃这只基金,转站债券、指数基金等具有相对稳定收益的理财产品。

4 结语

通过本次数据分析,我们深入了解了中欧医疗基金的历史表现、市场对比以及投资者评价。投资是一个复杂的过程,涵盖了众多因素和风险。在投资决策中,我们需要综合考虑基金的历史业绩、市场动态、用户评价等因素,制定合理的投资策略。

无论是基金的业绩表现还是市场的波动,都需要我们保持冷静、理性的态度。过去的表现并不能完全预测未来,市场也可能受到各种因素的影响而产生波动。因此,在投资决策中,我们应该保持警惕,随时准备应对市场的变化。

投资需要谨慎,也需要积极的学习和分析。通过数据的深入挖掘,我们能更好地了解基金的特点和市场的变化。在未来的投资征程中,让我们坚持谨慎乐观的态度,保持灵活性,不断优化投资计划,以期获得更稳健的投资回报。

注意:本文的分析仅供参考,投资决策需谨慎。投资者应根据自身情况和市场风险,做出明智的选择。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
Python全套学习资料

在这里插入图片描述

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/215545.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Anaconda详细安装步骤图文教程

文章目录 前言一、什么是Anaconda?二、为什么安装Anaconda三、如何安装AnacondaAnaconda关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试…

quickapp_快应用_父子组件传值

目录 页面级组件自定义组件(子组件)引入自定义组件(子组件)父组件给子组件传值子组件给父组件进行传值父组件调用子组件的方法 页面级组件 在pages中定义的组件被称为页面级组件。 页面级组件(等同于Vue页面),通过路由配置可以进行页面跳转。 自定义组件(子组件)…

InnoDB的B+树索引(一)

文章目录 概要一、InnoDB行格式二、InnoDB数据页结构2.1 User Records2.2 两个虚拟行记录2.3 PageDirectory(页目录)2.4 File Header(文件头部) 三、B树索引3.1 B树索引结构3.2 先有根节点再有叶子节点3.3 一条记录在索引中的查找…

(c语言进阶)结构体内存对齐和修改默认对齐数

一.结构体内存对齐 结构体内存大小计算方法: 偏移量:是指某个成员在结构体中相对于结构体首地址的偏移字节数。在计算机中,结构体是一种自定义数据类型,它由多个不同类型的成员组成。每个成员在内存中的存储位置是连续的&#xf…

短波红外相机的原理及应用场景

短波红外 (简称SWIR,通常指0.9~1.7μm波长的光线) 是一种比可见光波长更长的光。这些光不能通过“肉眼”看到,也不能用“普通相机”检测到。由于被检测物体的材料特性,一些在可见光下无法看到的特性,却能在近红外光下呈现出来&…

231203 刷题日报

周天,阳光明媚,期待一切顺利。 上午回顾了昨天刷的题: 快排、十字链表、两数组公共元素 下午看子序列: 300. 最长递增子序列 53. 最大子数组和 这两个题对比,子序列因为有“递增”限制,且不连续&#…

Vue项目解决van-calendar 打开下拉框显示空白(白色),需滑动一下屏幕,才可正常显示

问题描述,如图 ipad(平板)或者 H5移动端引入Vant组件的日历组件(van-calendar),初始化显示空白,需滚动一下屏幕,才可正常显示 解决方法 需在van-calendar上绑定open"openCalendar"事件…

SAP GRID-ALV复选框+GRID事件

实现功能: 复选框\设置复选框是否可编辑\实现changed_finished事件. 一、ALV增加复选框: 1.1、在输出内表里增加一个SEL的字段: sel TYPE c, 1.2、在build_fieldcat FORM里设置checkbox属性和edit属性,并输出SEL字段:…

机器人制作开源方案 | 校园餐具回收分类机器人

作者:梁桥、吴振宇、凌福海、李清轩、姜晓敏 单位:华北科技学院 指导老师:韩红利、张伟杰 1. 场景调研 1.1 项目实施目的 受新冠病毒引起的影响,人们生产生活发生了巨大的改变。现处于疫情防控常态化阶段,为应对点状…

ElementUI+vue+nodejs培训学校课程预约网站的设计与开发

该系统将采用B/S结构模式,前端部分主要使用html、css、JavaScript等技术,使用Vue和ElementUI框架搭建前端页面,后端部分将使用Nodejs来搭建服务器,并使用MySQL建立后台数据系统,通过axios完成前后端的交互,…

题目:神奇的进制

解题思路: 用电脑自带的计算器,切换到程序员模式。里面有进制转换功能。 由题目,要求严格递增且都为字母,还要大于2023,则数字16进制为ABC。

❀My学习Linux命令小记录(10)❀

目录 ❀My学习Linux命令小记录(10)❀ 36.fold指令 37.expr指令 38.iperf指令 39.telnet指令 40.ssh指令 ❀My学习Linux命令小记录(10)❀ 36.fold指令 功能说明:控制文件内容输出时所占用的屏幕宽度&#xff0c…

智能优化算法应用:基于供需算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于供需算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于供需算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.供需算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

基于PHP的在线日语学习平台

有需要请加文章底部Q哦 可远程调试 PHP在线日语学习平台 一 介绍 此日语学习平台基于原生PHP开发,数据库mysql。系统角色分为用户和管理员。(附带参考设计文档) 技术栈:phpmysqlphpstudyvscode 二 功能 学生 1 注册/登录/注销 2 个人中心 3 查看课程…

善网商城上线洁柔产品 公益人专享爱心价官方正品

近日,中国善网慈善商城(以下简称善网商城)系统经升级后重新上线。目前善网商城线上销售的中顺洁柔旗下慈善产品已顺利获得中顺洁柔纸业股份有限公司授权,双方就合作事宜达成共识,并于近日签订线上经营授权书。 &#x…

Optional源码分析(涉及Objects源码和Stream源码)

研究Optional源码之前先谈一谈Objects源码。 主要代码&#xff1a; ForceInlinepublic static <T> T requireNonNull(T obj) {if (obj null) {throw new NullPointerException();} else {return obj;}}ForceInlinepublic static <T> T requireNonNull(T obj, Str…

C/C++,图算法——凸包的快速壳(Quick Hull)算法的源代码

1 文本格式 // C program to implement Quick Hull algorithm // to find convex hull. #include<bits/stdc.h> using namespace std; // iPair is integer pairs #define iPair pair<int, int> // Stores the result (points of convex hull) set<iPair>…

外包干了2个月,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测…

Linux --- 进程控制

目录 1. 进程创建 1.1. 内核数据结构的处理 1.2. 代码的处理 1.3. 数据的处理&#xff1a; 方案一&#xff1a;fork创建子进程的时候&#xff0c;直接对数据进行拷贝处理&#xff0c;让父子进程各自私有一份 方案二&#xff1a;写实拷贝(copy on write) 1.4. fork常规用…

RocketMQ-整合SpringBoot

SpringBoot整合RocketMQ 创建Maven工程&#xff0c;引入关键依赖&#xff1a; <dependencies><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.2</ver…