python_day8_综合案例

这篇具有很好参考价值的文章主要介绍了python_day8_综合案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

综合案例,全球GDP排行榜

1、知识点补充:sort()方法

sort()方法: 列表.sort(key=选择排序依据的函数,reverse=True|False)

my_list = [['a', 33], ['b', 55], ['c', 11]]


def choose_sort_key(element):
    return element[1]  # 列表中每个元素传进来,按照元素下标1排序


# 逆序
my_list.sort(key=choose_sort_key, reverse=True)  # 注意此处调用函数方式
print(my_list)

python_day8_综合案例,python,python,信息可视化,开发语言

匿名函数写法

my_list = [['a', 33], ['b', 55], ['c', 11]]
my_list.sort(key=lambda element: element[1], reverse=True)
print(my_list)

python_day8_综合案例,python,python,信息可视化,开发语言

2、实战案例 ,全球GDP数据可视化

导包

from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import *

数据准备

f = open("D:/1960-2019全球GDP数据.csv", "r", encoding="ansi")  # 本机编码为GB2312
data = f.readlines()  # readlines()返回列表,read()返回字符串
f.close()
print(data)
print(type(data))

python_day8_综合案例,python,python,信息可视化,开发语言
python_day8_综合案例,python,python,信息可视化,开发语言

第一行为标头,非数据,使用pop()方法去除

data.pop(0)
print(data)

python_day8_综合案例,python,python,信息可视化,开发语言

将数据转为字典格式

错误思路

{年份:[国家,GDP],年份:[国家,GDP],int:[str,float]…} ,实际上,同年应有多个国家GDP数据,故此格式错误

for element in data:
    element = element.strip()
    element = element.split(',')
    print("element:",element)

python_day8_综合案例,python,python,信息可视化,开发语言
此方法错误,年份key相同时,为更新value操作!!!!!严重丢失数据!!!

data_dict = {}
# {年份:[国家,GDP],年份:[国家,GDP],int:[str,float]......},实际上,同年应有多个国家GDP数据,故此格式错误
for element in data:
    element = element.strip()
    element = element.split(',')
    # print("element:",element)
    # 注意字典添加/更新数据方式:my_dict[key] = value
    # 此方法错误,年份key相同时,为更新value操作!!!!!严重丢失数据!!!
    # data_dict = {element[0]: [element[1], element[2]]}
    data_dict[int(element[0])] = [element[1], float(element[2])]
print(data_dict)
print(type(data_dict))

python_day8_综合案例,python,python,信息可视化,开发语言

正确思路

{年份:[[国家,GDP],[国家,GDP],…],年份:[[国家,GDP],[国家,GDP],…],int:[[str,float],[str,float],…],…}
正确数据格式,年份:value,而value是一个列表,包含不同国家的数据,其中每个元素又是一个列表;而某一国家具体数据列表为[国家,GDP]。

data_dict = {}
for line in data:
    print(line)

python_day8_综合案例,python,python,信息可视化,开发语言

	print(type(line))

python_day8_综合案例,python,python,信息可视化,开发语言

	print(line.split(','))  # ['2018', '巴巴多斯', '5086500000\n']

python_day8_综合案例,python,python,信息可视化,开发语言

split()方法生成列表,取0号索引元素为年份,1号索引元素为国家,2号索引元素为GDP
data_dict = {}
# {年份:[[国家,GDP],[国家,GDP],......],年份:[[国家,GDP],[国家,GDP],......],int:[[str,float],[str,float],......],......},正确数据格式,年份:value,而value是一个列表,包含不同国家的数据,其中每个元素又是一个列表;而某一国家具体数据列表为[国家,GDP]。
for line in data:
    # print(line)
    # print(type(line))
    # print(line.split(','))  # ['2018', '巴巴多斯', '5086500000\n']
    # split()方法生成列表,取0号索引元素为年份,1号索引元素为国家,2号索引元素为GDP
    year = int(line.split(',')[0])
    country = line.split(',')[1]
    GDP = float(line.split(',')[2])  # 换行符消失 543300000000.0
    print(GDP)

python_day8_综合案例,python,python,信息可视化,开发语言

注意此处灵活使用try捕获异常语句,妙

"""
    {key:value} --> value = [元素一,元素二,......] --> 元素一 = [country,GDP]
    try:
        无异常的情况,向列表(value)中使用append()方法追加元素(list)
        data_dict[year].append([country,GDP])
    except:
        出现异常情况,data_dict[year]此时无对应value,构建空列表,再向列表中追加元素
        data_dict[year] = []
        data_dict[year].append([country,GDP])
    """
    try:
        data_dict[year].append([country, GDP])
    except:
        data_dict[year] = []
        data_dict[year].append([country, GDP])

print(data_dict)
print(type(data_dict))

python_day8_综合案例,python,python,信息可视化,开发语言
python_day8_综合案例,python,python,信息可视化,开发语言

将数据转为字典格式完整代码
# 将数据转为字典格式


"""
data_dict = {}
# {年份:[国家,GDP],年份:[国家,GDP],int:[str,float]......},实际上,同年应有多个国家GDP数据,故此格式错误
for element in data:
    element = element.strip()
    element = element.split(',')
    # print("element:",element)
    # 注意字典添加/更新数据方式:my_dict[key] = value
    # 此方法错误,年份key相同时,为更新value操作!!!!!严重丢失数据!!!
    # data_dict = {element[0]: [element[1], element[2]]}
    data_dict[int(element[0])] = [element[1], float(element[2])]
print(data_dict)
print(type(data_dict))
"""

data_dict = {}
# {年份:[[国家,GDP],[国家,GDP],......],年份:[[国家,GDP],[国家,GDP],......],int:[[str,float],[str,float],......],......},正确数据格式,年份:value,而value是一个列表,包含不同国家的数据,其中每个元素又是一个列表;而某一国家具体数据列表为[国家,GDP]。
for line in data:
    # print(line)
    # print(type(line))
    # print(line.split(','))  # ['2018', '巴巴多斯', '5086500000\n']
    # split()方法生成列表,取0号索引元素为年份,1号索引元素为国家,2号索引元素为GDP
    year = int(line.split(',')[0])
    country = line.split(',')[1]
    GDP = float(line.split(',')[2])  # 换行符消失 543300000000.0
    # print(GDP)
    # 注意此处灵活使用try捕获异常语句,妙
    """
    {key:value} --> value = [元素一,元素二,......] --> 元素一 = [country,GDP]
    try:
        无异常的情况,向列表(value)中使用append()方法追加元素(list)
        data_dict[year].append([country,GDP])
    except:
        出现异常情况,data_dict[year]此时无对应value,构建空列表,再向列表中追加元素
        data_dict[year] = []
        data_dict[year].append([country,GDP])
    """
    try:
        data_dict[year].append([country, GDP])
    except:
        data_dict[year] = []
        data_dict[year].append([country, GDP])

# print(data_dict)
# print(type(data_dict))
可转为json,放入格式化工具查看一下
data_json = json.dumps(data_dict)
print(data_json)
print(type(data_json))

python_day8_综合案例,python,python,信息可视化,开发语言
python_day8_综合案例,python,python,信息可视化,开发语言
python_day8_综合案例,python,python,信息可视化,开发语言

时间线柱状图timeline的时间节点应有序,故先对年份进行排序(实际上字典中year(key)已是升序)

sorted_year_list = sorted(data_dict.keys())  # keys()方法取出字典所有关键字,可用for循环遍历字典
print(sorted_year_list)

python_day8_综合案例,python,python,信息可视化,开发语言

每年国家数量非常多,取GDP排名前十作柱状图

print(data_dict[1960])  # 每年国家数量非常多,取GDP排名前十作柱状图

python_day8_综合案例,python,python,信息可视化,开发语言

构建时间线对象

timeline = Timeline(
    {"theme": ThemeType.LIGHT}  # 设置主题
)

每年GDP降序排序

for year in sorted_year_list:
    data_dict[year].sort(key=lambda element: element[1],
                         reverse=True)  # sort()方法:  列表.sort(key=选择排序依据的函数,reverse=True|False)
    print(data_dict[year]) # [['美国', 543300000000.0], ['英国', 73233967692.0], ['法国', 62225478000.0], ['中国', 59716467625.0],......]

python_day8_综合案例,python,python,信息可视化,开发语言

取出本年度GDP前十的国家, 数据类型为列表,可通过切片[::],取出前十名

print(type(data_dict[year]))  # 数据类型为列表,可通过切片[::],取出前十名
    prior_gdp = data_dict[year][0:10]

python_day8_综合案例,python,python,信息可视化,开发语言

每一年都构建一个柱状图

# 创建两个列表分别存放X轴数据与Y轴数据
    x_data = []
    y_data = []

前十名

print(prior_gdp)

python_day8_综合案例,python,python,信息可视化,开发语言

取国家名存入列表作为X轴数据,取GDP值存入列表作为Y轴数据

    for country_gdp in prior_gdp:
        print(country_gdp)  # ['美国', 17527200000000.0]
        x_data.append(country_gdp[0])
        y_data.append(country_gdp[1] / 100000000)

python_day8_综合案例,python,python,信息可视化,开发语言

print(x_data)  # ['美国', '英国', '法国', '中国', '日本', '加拿大', '意大利', '印度', '澳大利亚', '瑞典']
    print(y_data)  # [5433.0, 732.33967692, 622.25478, 597.16467625, 443.0734295, 404.61721692, 403.85288344, 370.29883875, 185.77668271, 158.22585033]

python_day8_综合案例,python,python,信息可视化,开发语言

构建柱状图对象

反转X轴与Y轴,此操作导致GDP高的国家在最下面,故上方使用reverse()方法逆置X轴与Y轴数据

# 构建柱状图对象
    bar = Bar()
    # 逆置X轴与Y轴数据,使GDP值高的排在前面
    x_data.reverse()
    y_data.reverse()

    bar.add_xaxis(x_data)
    # Y轴设置图例,数据,以及数据在右侧显示
    bar.add_yaxis("GDP(亿元)", y_data, label_opts=LabelOpts(position="right"))
    bar.reversal_axis()  # 反转X轴与Y轴,此操作导致GDP高的国家在最下面,故上方使用reverse()方法逆置X轴与Y轴数据

设置每年图的标题

bar.set_global_opts(
        title_opts=TitleOpts(title=f"{year}年全球前十GDP"),
        toolbox_opts=ToolboxOpts(is_show=True)
    )

    timeline.add(bar, str(year))  # 要求为字符串

设置自动播放

timeline.add_schema(
    play_interval=500,
    is_loop_play=False,
    is_auto_play=True,
    is_timeline_show=True
)

绘图

timeline.render("GDP排行榜.html")

python_day8_综合案例,python,python,信息可视化,开发语言
python_day8_综合案例,python,python,信息可视化,开发语言
python_day8_综合案例,python,python,信息可视化,开发语言
python_day8_综合案例,python,python,信息可视化,开发语言文章来源地址https://www.toymoban.com/news/detail-591840.html

PS完整代码(含思路注释版)

from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import *
import json


# 实战案例 ,全球GDP数据可视化

# 数据准备
f = open("D:/1960-2019全球GDP数据.csv", "r", encoding="ansi")  # 本机编码为GB2312
data = f.readlines()  # readlines()返回列表,read()返回字符串
f.close()
# print(data)
# print(type(data))

# 第一行为标头,非数据,使用pop()方法去除
data.pop(0)
# print(data)

# 将数据转为字典格式


"""
data_dict = {}
# {年份:[国家,GDP],年份:[国家,GDP],int:[str,float]......},实际上,同年应有多个国家GDP数据,故此格式错误
for element in data:
    element = element.strip()
    element = element.split(',')
    # print("element:",element)
    # 注意字典添加/更新数据方式:my_dict[key] = value
    # 此方法错误,年份key相同时,为更新value操作!!!!!严重丢失数据!!!
    # data_dict = {element[0]: [element[1], element[2]]}
    data_dict[int(element[0])] = [element[1], float(element[2])]
print(data_dict)
print(type(data_dict))
"""

data_dict = {}
# {年份:[[国家,GDP],[国家,GDP],......],年份:[[国家,GDP],[国家,GDP],......],int:[[str,float],[str,float],......],......},正确数据格式,年份:value,而value是一个列表,包含不同国家的数据,其中每个元素又是一个列表;而某一国家具体数据列表为[国家,GDP]。
for line in data:
    # print(line)
    # print(type(line))
    # print(line.split(','))  # ['2018', '巴巴多斯', '5086500000\n']
    # split()方法生成列表,取0号索引元素为年份,1号索引元素为国家,2号索引元素为GDP
    year = int(line.split(',')[0])
    country = line.split(',')[1]
    GDP = float(line.split(',')[2])  # 换行符消失 543300000000.0
    # print(GDP)
    # 注意此处灵活使用try捕获异常语句,妙
    """
    {key:value} --> value = [元素一,元素二,......] --> 元素一 = [country,GDP]
    try:
        无异常的情况,向列表(value)中使用append()方法追加元素(list)
        data_dict[year].append([country,GDP])
    except:
        出现异常情况,data_dict[year]此时无对应value,构建空列表,再向列表中追加元素
        data_dict[year] = []
        data_dict[year].append([country,GDP])
    """
    try:
        data_dict[year].append([country, GDP])
    except:
        data_dict[year] = []
        data_dict[year].append([country, GDP])

# print(data_dict)
# print(type(data_dict))

# 可转为json,放入格式化工具查看一下
# data_json = json.dumps(data_dict)
# print(data_json)
# print(type(data_json))

# 时间线柱状图timeline的时间节点应有序,故先对年份进行排序(实际上字典中year(key)已是升序)
sorted_year_list = sorted(data_dict.keys())  # keys()方法取出字典所有关键字,可用for循环遍历字典
# print(sorted_year_list)

# print(data_dict[1960])  # 每年国家数量非常多,取GDP排名前十作柱状图

# 构建时间线对象
timeline = Timeline(
    {"theme": ThemeType.LIGHT}  # 设置主题
)

for year in sorted_year_list:
    data_dict[year].sort(key=lambda element: element[1],
                         reverse=True)  # sort()方法:  列表.sort(key=选择排序依据的函数,reverse=True|False)
    # print(data_dict[year]) # [['美国', 543300000000.0], ['英国', 73233967692.0], ['法国', 62225478000.0], ['中国', 59716467625.0],......]
    # 取出本年度GDP前十的国家
    # print(type(data_dict[year]))  # 数据类型为列表,可通过切片[::],取出前十名
    prior_gdp = data_dict[year][0:10]

    # 每一年都构建一个柱状图
    # 创建两个列表分别存放X轴数据与Y轴数据
    x_data = []
    y_data = []
    # print(prior_gdp)
    for country_gdp in prior_gdp:
        # print(country_gdp)  # ['美国', 17527200000000.0]
        x_data.append(country_gdp[0])
        y_data.append(country_gdp[1] / 100000000)

    # print(x_data)  # ['美国', '英国', '法国', '中国', '日本', '加拿大', '意大利', '印度', '澳大利亚', '瑞典']
    # print(y_data)  # [5433.0, 732.33967692, 622.25478, 597.16467625, 443.0734295, 404.61721692, 403.85288344, 370.29883875, 185.77668271, 158.22585033]

    # 构建柱状图对象
    bar = Bar()
    # 逆置X轴与Y轴数据,使GDP值高的排在前面
    x_data.reverse()
    y_data.reverse()

    bar.add_xaxis(x_data)
    # Y轴设置图例,数据,以及数据在右侧显示
    bar.add_yaxis("GDP(亿元)", y_data, label_opts=LabelOpts(position="right"))
    bar.reversal_axis()  # 反转X轴与Y轴,此操作导致GDP高的国家在最下面,故上方使用reverse()方法逆置X轴与Y轴数据

    # bar.render()
    # 设置每年图的标题
    bar.set_global_opts(
        title_opts=TitleOpts(title=f"{year}年全球前十GDP"),
        toolbox_opts=ToolboxOpts(is_show=True)
    )

    timeline.add(bar, str(year))  # 要求为字符串

# 设置自动播放
timeline.add_schema(
    play_interval=500,
    is_loop_play=False,
    is_auto_play=True,
    is_timeline_show=True
)
# 绘图
timeline.render("GDP排行榜.html")

PS完整代码(清爽版)

from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import *

# 实战案例 ,全球GDP数据可视化

# 数据准备
f = open("D:/1960-2019全球GDP数据.csv", "r", encoding="ansi")  # 本机编码为GB2312
data = f.readlines()  # readlines()返回列表,read()返回字符串
f.close()

# 第一行为标头,非数据,使用pop()方法去除
data.pop(0)

# 将数据转为字典格式
data_dict = {}
# {年份:[[国家,GDP],[国家,GDP],......],年份:[[国家,GDP],[国家,GDP],......],int:[[str,float],[str,float],......],......},正确数据格式,年份:value,而value是一个列表,包含不同国家的数据,其中每个元素又是一个列表;而某一国家具体数据列表为[国家,GDP]。
for line in data:
    # split()方法生成列表,取0号索引元素为年份,1号索引元素为国家,2号索引元素为GDP
    year = int(line.split(',')[0])
    country = line.split(',')[1]
    GDP = float(line.split(',')[2])  # 换行符消失 543300000000.0
    # 注意此处灵活使用try捕获异常语句,妙
    """
    {key:value} --> value = [元素一,元素二,......] --> 元素一 = [country,GDP]
    try:
        无异常的情况,向列表(value)中使用append()方法追加元素(list)
        data_dict[year].append([country,GDP])
    except:
        出现异常情况,data_dict[year]此时无对应value,构建空列表,再向列表中追加元素
        data_dict[year] = []
        data_dict[year].append([country,GDP])
    """
    try:
        data_dict[year].append([country, GDP])
    except:
        data_dict[year] = []
        data_dict[year].append([country, GDP])

# 时间线柱状图timeline的时间节点应有序,故先对年份进行排序(实际上字典中year(key)已是升序)
sorted_year_list = sorted(data_dict.keys())  # keys()方法取出字典所有关键字,可用for循环遍历字典

# 构建时间线对象
timeline = Timeline(
    {"theme": ThemeType.LIGHT}  # 设置主题
)

for year in sorted_year_list:
    data_dict[year].sort(key=lambda element: element[1],
                         reverse=True)  # sort()方法:  列表.sort(key=选择排序依据的函数,reverse=True|False)
    # 取出本年度GDP前十的国家
    prior_gdp = data_dict[year][0:10]

    # 每一年都构建一个柱状图
    # 创建两个列表分别存放X轴数据与Y轴数据
    x_data = []
    y_data = []
    for country_gdp in prior_gdp:
        x_data.append(country_gdp[0])
        y_data.append(country_gdp[1] / 100000000)

    # 构建柱状图对象
    bar = Bar()
    # 逆置X轴与Y轴数据,使GDP值高的排在前面
    x_data.reverse()
    y_data.reverse()

    bar.add_xaxis(x_data)
    # Y轴设置图例,数据,以及数据在右侧显示
    bar.add_yaxis("GDP(亿元)", y_data, label_opts=LabelOpts(position="right"))
    bar.reversal_axis()  # 反转X轴与Y轴,此操作导致GDP高的国家在最下面,故上方使用reverse()方法逆置X轴与Y轴数据

    # 设置每年图的标题
    bar.set_global_opts(
        title_opts=TitleOpts(title=f"{year}年全球前十GDP"),
        toolbox_opts=ToolboxOpts(is_show=True)
    )

    timeline.add(bar, str(year))  # 要求为字符串

# 设置自动播放
timeline.add_schema(
    play_interval=500,
    is_loop_play=False,
    is_auto_play=True,
    is_timeline_show=True
)
# 绘图
timeline.render("GDP排行榜.html")

到了这里,关于python_day8_综合案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python爬虫+数据分析】采集电商平台数据信息,并做可视化演示(带视频案例)

    随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。 接下来就让我来教你 如何使用Python编写爬虫程序,抓取电商平台的

    2024年02月11日
    浏览(65)
  • 基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(五)FineBI可视化

    目标 : 实现FineBI访问MySQL结果数据集的配置 实施 安装FineBI 参考《FineBI Windows版本安装手册.docx》安装FineBI 配置连接 数据准备 小结 实现FineBI访问MySQL结果数据集的配置 目标 : 实现FineBI实时报表构建 路径 step1:实时报表构建 step2:实时报表配置 step3:实时刷新测试 实施 实

    2024年02月04日
    浏览(43)
  • 数据分析案例-数据分析师岗位招聘信息可视化

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 ​编辑 1.数据集介绍 2.实验工具 3.实验过程 3.1加载数据 3.2数据预处理 3.3数据可视化

    2024年02月16日
    浏览(57)
  • 数据分析案例-BI工程师招聘岗位信息可视化分析

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 数据集介绍 实验工具  实验过程 导入数据 数据预处理 数据可视化 1.分析BI工程师岗位

    2024年02月06日
    浏览(40)
  • python_day16_设计模式

    “”“单例模式”“” “”“工厂模式”“”

    2024年02月14日
    浏览(39)
  • 【计算机设计大赛作品】VR项目-中国古字贾湖刻字—信息可视化赛道获奖项目深入剖析【可视化项目案例-21】

    🎉🎊🎉 你的技术旅程将在这里启航! 记得看本专栏里顶置的可视化宝典导航贴哦! 🚀🚀 本专栏为可视化专栏,包含现有的所有可视化技术。订阅专栏用户在文章底部可下载对应案例完整源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不

    2024年02月04日
    浏览(62)
  • python_day19_正则表达式

    导包 match 从头匹配 search 搜索匹配 findall 搜索全部匹配,返回列表 匹配数字,前面加r表示转义字符无效 匹配非单词字符 匹配英文字母 匹配账号,字母数字组成,长度6-10:注意{6,9}此处无空格 匹配qq号,纯数字,首位非0,长度6-11 匹配邮箱,qq,163,gmail 注意此处整体需加括号

    2024年02月14日
    浏览(38)
  • Python气象信息可视化方法汇总

            气象数据可视化是一种将气象数据通过图形、图像等视觉化手段进行呈现,以便更好地理解、分析和预测天气状况的系统。它的发展历程可以追溯到20世纪70年代,随着计算机技术和大数据处理能力的不断提升,气象数据可视化系统也得到了迅速发展,成为气象领

    2024年01月23日
    浏览(57)
  • 【100天精通Python】Day71:Python可视化_一文掌握Seaborn库的使用《一》_数据分布可视化,数据关系可视化,示例+代码

    目录 1. 数据分布的可视化 1.1 直方图(Histograms) 1.2 核密度估计图(Kernel Density Estimation Plot)

    2024年02月06日
    浏览(54)
  • python气象数据可视化学习笔记8——利用matplotlib和ERA5数据绘制时间-高度气象综合廓线图

    气象预报业务中,有种常用的综合廓线图,其本质上是单个站点时间-高度的等高线或者填色图,其中时间是从右到左来看。所以准备好(time, level)的二维数据,然后依次叠加线条和填色就可以,思路很简单,但是绘图中涉及到了很多细节问题,也是琢磨了一阵子,怕以后忘了

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包