主頁 > 後端開發 > 我用Python把《白蛇2青蛇劫起》的評論做了資料可視化分析

我用Python把《白蛇2青蛇劫起》的評論做了資料可視化分析

2021-09-17 10:25:33 後端開發

大家好,我是辣條,

終于要開始資料分析系列的文章了,相比爬蟲來說技術維度還是上升一個層次的,我的文章輸出呢會更新實戰專案系列,和知識點詳解總結系列,分別在兩個專欄,目標是短期實作爬蟲和資料分析實戰專案100個案例,

涉及到的庫:

Pandas — 資料處理 Pyecharts — 資料可視化 jieba — 分詞 collections — 資料統計

可視化部分:

折線圖 — Line 柱狀圖 — Bar 餅狀圖 — Pie 日歷圖 — Calendar 詞云圖 — WordCloud 地圖 — Geo

白蛇2:青蛇劫起

*劇情簡介:*

2021年7月23日, 白蛇2:青蛇劫起在大陸上映,主要講述南宋末年,小白為救許仙水漫金山,終被法海壓在雷峰塔下,小青則意外被法海打入詭異的修羅城幻境,幾次危機中小青被神秘蒙面少年所救,小青帶著出去救出小白的執念歷經劫難與成長,同蒙面少年一起尋找離開辦法的故事

執行環節 Notebook

安裝第三方包

!pip install pyecharts
!pip install pandas
!pip install numpy

匯入第三方包

import pandas as pd
import numpy as np
from pyecharts.charts import * 
from PIL import Image
from collections import Counter
from pyecharts import options as opts # 可視化配置項
from pyecharts.commons.utils import JsCode # 用來跑js代碼的
from pyecharts.globals import ThemeType,SymbolType,ChartType # 可視化主題樣式

讀取資料

df = pd.read_excel("./白蛇2.xlsx")
df.head(10)  # 查看前 10行
id用戶名城市評分評論評論時間
01142669584淇桐糯米飯啦來賓5.0劇情非常有吸引力,看個影片片給了我驚喜2021-08-31 23:56:30
11142662178LnV14610189西寧5.0畫面感超強!2021-08-31 23:36:00
21142666877Alo861902585廣州5.0和一銜接的很不錯,精彩2021-08-31 23:34:41
31142660216Y,西安4.0畫面人物沒的說,你永遠可以相信追光,劇情還算順暢整體節奏也還可以,推薦觀看——!2021-08-31 23:30:56
41142669423想為你攬月鳳臺5.0不錯哦,雖然小青小白的執念有一丟丟丟丟丟牽強(還好),如果能細說一下牛魔的執念劇情會更完美,...2021-08-31 23:27:28
51142669422啊卡哇啊呀啊呀日照5.0不錯不錯,感覺越來越有看頭了2021-08-31 23:27:12
61142669404Lfz9696永州4.5還可以,很不錯2021-08-31 23:23:30
71142666812Tenacity廣州4.0電影還行,就是隔壁有個男的一直抖腿,2021-08-31 23:22:23
81142661206CQE579669148烏魯木齊5.0好好看,推薦2021-08-31 23:16:22
91142668420胖胖的嗩吶伊犁5.0劇情有點沒看懂,但是影片特效非常棒!情節挺感人的,2021-08-31 23:06:36

資料清洗

缺失值查看

df.isnull().sum()
id      0
用戶名     1
城市      0
評分      0
評論      0
評論時間    0
dtype: int64

查看發現存在一個確實情況

用戶名存在一條缺失,其他各列資料完整,用“未知”填充空值:

df['用戶名'].fillna('未知', inplace=True)
df.isnull().sum()

Pyecharts資料可視化

評分等級分布

# 線性漸變
color_js = """new echarts.graphic.LinearGradient(0, 0, 1, 0,
    [{offset: 0, color: '#009ad6'}, {offset: 1, color: '#ed1941'}], false)"""
?
df_star = df.groupby('評分')['評論'].count()
df_star = df_star.sort_values(ascending=True)
x_data = [str(i) for i in list(df_star.index)]
y_data = df_star.values.tolist()
b1 = (
    Bar()
    .add_xaxis(x_data)
    .add_yaxis('',y_data,itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
    .reversal_axis()
    .set_series_opts(label_opts=opts.LabelOpts(position='right'))    
    .set_global_opts(
        yaxis_opts=opts.AxisOpts(name='評分等級'),
        xaxis_opts=opts.AxisOpts(name='人/次'),
        title_opts=opts.TitleOpts(title='評分等級分布',pos_left='45%',pos_top="5%"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="85%",pos_top="28%",orient="vertical")
    )
)
?
df_star = df.groupby('評分')['評論'].count()
x_data = [str(i) for i in list(df_star.index)]
y_data = df_star.values.tolist()
p1 = (
    Pie(init_opts=opts.InitOpts(width='800px', height='600px'))
    .add(
    '',
    [list(z) for z in zip(x_data, y_data)],
    radius=['10%', '30%'],
    center=['65%', '60%'],
    label_opts=opts.LabelOpts(is_show=True),
    ) 
    .set_colors(["blue", "green", "#800000", "red", "#000000", "orange", "purple", "red", "#000000", "orange", "purple"])
    .set_series_opts(label_opts=opts.LabelOpts(formatter='評分{b}: {c} \n ({d}%)'),position="outside")   
)
?
b1.overlap(p1)
b1.render_notebook()

5.0的評分占比達到了56%,超過了半數觀眾打出了五星好評,四星以上好評更是達到了85%之多,看來大家對這部動漫還是高度認可的,

2021.08.01-2021.08.31 每天評論量分布:

# 設定樣式
# 加載的js代碼 做樣式 主要是 顏色 和主題
color_js = """new echarts.graphic.LinearGradient(0, 1, 0, 0,
    [{offset: 0, color: '#009ad6'}, {offset: 1, color: '#ed1941'}], false)"""
?
area_color_js = (
    "new echarts.graphic.LinearGradient(0, 0, 0, 1, "
    "[{offset: 0, color: '#eb64fb'}, {offset: 1, color: '#3fbbff0d'}], false)"
)
?
# 設定引數
linestyle_dic = { 'normal': {
                    'width': 2,  
                    'shadowColor': '#696969', 
                    'shadowBlur': 10,  
                    'shadowOffsetY': 10,  
                    'shadowOffsetX': 10,  
                    }
                }
?
# 轉時間格式
df['評論時間'] = pd.to_datetime(df['評論時間'], format='%Y/%m/%d %H:%M:%S')
# 每日評論量
df['評論時間'] = pd.to_datetime(df['評論時間'], format='%Y/%m/%d %H:%M:%S')
df_day = df.groupby(df['評論時間'].dt.day)['評論'].count()  # 根據評論時間 獲取評論的數量(count)
day_x_data = [str(i) for i in list(df_day.index)] # x軸
day_y_data = df_day.values.tolist() # 輸出成串列 y軸
 
line1 = (
    Line(init_opts=opts.InitOpts(bg_color=JsCode(color_js))) # 線性可視化
    .add_xaxis(xaxis_data=day_x_data) # 添加x軸資料
    .add_yaxis(  # 添加y軸資料
        series_name="",  # y軸名稱
        y_axis=day_y_data, # 資料
        is_smooth=True,
        is_symbol_show=True,
        symbol="circle",
        symbol_size=6,
        linestyle_opts=opts.LineStyleOpts(color="#fff"), # 配置y軸線
        label_opts=opts.LabelOpts(is_show=True, position="top", color="white"), # y軸標簽
        itemstyle_opts=opts.ItemStyleOpts(
            color="red", border_color="#fff", border_width=3
        ),
        tooltip_opts=opts.TooltipOpts(is_show=False),
        areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js), opacity=1),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="八月每日評論量",
            pos_top="5%",
            pos_left="center",
            title_textstyle_opts=opts.TextStyleOpts(color="#fff", font_size=16),
        ),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            boundary_gap=True,
            axislabel_opts=opts.LabelOpts(margin=30, color="#ffffff63"),
            axisline_opts=opts.AxisLineOpts(is_show=False),
            axistick_opts=opts.AxisTickOpts(
                is_show=True,
                length=25,
                linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
            ),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
            ),
        ),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            position="left",
            axislabel_opts=opts.LabelOpts(margin=20, color="#ffffff63"),
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(width=2, color="#fff")
            ),
            axistick_opts=opts.AxisTickOpts(
                is_show=True,
                length=15,
                linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
            ),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
            ),
        ),
        legend_opts=opts.LegendOpts(is_show=False),
    )
)
line1.render_notebook()

每天評論量在8月1日達到峰值(資料不包含7月份),隨著時間的推移評論數量逐漸減少,這也符合一般電影觀影規律,

每小時評論量

統計的是2021.08.01-2021.08.31這31天每小時天評論量總和(如果感興趣可以單獨查看某一天24小時影評數量分布,按日期篩選即可)

df_hour = df.groupby(df['評論時間'].dt.hour)['評論'].count()
hours_x_data = [str(i) for i in list(df_hour.index)]
hours_y_data = df_hour.values.tolist()
 
line1 = (
#     Line(init_opts=opts.InitOpts(bg_color=JsCode(color_js)))
    Line(init_opts=opts.InitOpts(width='1000px', height='400px'))
    .add_xaxis(xaxis_data=hours_x_data)
    .add_yaxis(
        series_name="",
        y_axis=hours_y_data,
        is_smooth=True,
        is_symbol_show=True,
        symbol="circle",
        symbol_size=6,
        linestyle_opts=opts.LineStyleOpts(color="#fff"),
        label_opts=opts.LabelOpts(is_show=True, position="top", color="white"),
        itemstyle_opts=opts.ItemStyleOpts(
            color="red", border_color="#fff", border_width=3
        ),
        tooltip_opts=opts.TooltipOpts(is_show=False),
        areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js), opacity=1),
    )
    .set_series_opts(
        linestyle_opts=linestyle_dic,label_opts=opts.LabelOpts(font_size=12, color='red' ),
        markpoint_opts=opts.MarkPointOpts(
            data=[opts.MarkPointItem(type_="max",itemstyle_opts=opts.ItemStyleOpts(
            color="#06FFD7", border_width=3)), 
            opts.MarkPointItem(type_="min",itemstyle_opts=opts.ItemStyleOpts(
            color="#06FFD7", border_width=3))],
            symbol_size=[65, 50],
            label_opts=opts.LabelOpts(position="inside", color="red", font_size=10)
            ),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="每小時評論量",
            pos_top="5%",
            pos_left="center",
            title_textstyle_opts=opts.TextStyleOpts(color="#EB1934", font_family='STKaiti', font_size=20),
        ),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            boundary_gap=True,
            axislabel_opts=opts.LabelOpts(margin=30, color="#EB1934"),
            axisline_opts=opts.AxisLineOpts(
                is_show=False, 
                linestyle_opts=opts.LineStyleOpts(color="#EB1934")
            ),
            axistick_opts=opts.AxisTickOpts(
                is_show=False,
                length=25,
                linestyle_opts=opts.LineStyleOpts(color="#EB1934"),
            ),
        ),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            position="left",
            axislabel_opts=opts.LabelOpts(is_show=False, margin=20, color="#EB1934"),
            axisline_opts=opts.AxisLineOpts(
                is_show=False,
                linestyle_opts=opts.LineStyleOpts(width=2, color="#EB1934")
            ),
            axistick_opts=opts.AxisTickOpts(
                is_show=False,
                length=10,
                linestyle_opts=opts.LineStyleOpts(color="#EB1934"),
            ),
            splitline_opts=opts.SplitLineOpts(
                is_show=False, linestyle_opts=opts.LineStyleOpts(color="#EB1934")
            ),
        ),
        legend_opts=opts.LegendOpts(is_show=False),
        graphic_opts=[
            opts.GraphicImage(
                graphic_item=opts.GraphicItem(
                    id_="logo", z=-10, bounding="raw", origin=[50, 100]
                ),
                graphic_imagestyle_opts=opts.GraphicImageStyleOpts(
                    image="./12.jpg",
                    width=1000,
                    height=400,
                    opacity=0.3,
                ),
            )
        ],
    )
)
# line1.render_notebook()
# 背景圖在本地可以顯示,但是平臺只顯示折線圖無背景,可以把代碼拷貝到本地運行
Image.open("./2.png")

從小時分布來看,大家一般選擇在下午到晚上評論的比較多,尤其是在17:00以后,大家在作業時段還都是比較敬業的,第二次評論峰值在22:00,這個時間段是熬夜青年比較活躍的時段,小伙伴們的作息時間都比較靠后,

3.4 一周各天評論量

統計的是2021.08.01-2021.08.31這31天每周各天評論量的總和:

?

# 增加欄位'星期'
dic = {1:'星期一',2:'星期二',3:'星期三',4:'星期四',5:'星期五',6:'星期六',7:'星期日'}
df['星期'] = df['評論時間'].dt.dayofweek+1
df['星期'] = df['星期'].map(dic)
df.head(5

)
?
 
id用戶名城市評分評論評論時間星期
01142669584淇桐糯米飯啦來賓5.0劇情非常有吸引力,看個影片片給了我驚喜2021-08-31 23:56:30星期二
11142662178LnV14610189西寧5.0畫面感超強!2021-08-31 23:36:00星期二
21142666877Alo861902585廣州5.0和一銜接的很不錯,精彩2021-08-31 23:34:41星期二
31142660216Y,西安4.0畫面人物沒的說,你永遠可以相信追光,劇情還算順暢整體節奏也還可以,推薦觀看——!2021-08-31 23:30:56星期二
41142669423想為你攬月鳳臺5.0不錯哦,雖然小青小白的執念有一丟丟丟丟丟牽強(還好),如果能細說一下牛魔的執念劇情會更完美,...2021-08-31 23:27:28星期二
# 一周各天評論量
dic = {1:'星期一',2:'星期二',3:'星期三',4:'星期四',5:'星期五',6:'星期六',7:'星期日'}
df['星期'] = df['評論時間'].dt.dayofweek+1
df1 = df.sort_values('星期',ascending=True)
df_week = df1.groupby(['星期'])['評論'].count()
week_x_data = [dic[i] for i in list(df_week.index)]
week_y_data = df_week.values.tolist()
 
line1 = (
    Line(init_opts=opts.InitOpts(bg_color=JsCode(color_js)))
    .add_xaxis(xaxis_data=week_x_data)
    .add_yaxis(
        series_name="",
        y_axis=week_y_data,
        is_smooth=True,
        is_symbol_show=True,
        symbol="circle",
        symbol_size=6,
        linestyle_opts=opts.LineStyleOpts(color="#fff"),
        label_opts=opts.LabelOpts(is_show=True, position="top", color="white"),
        itemstyle_opts=opts.ItemStyleOpts(
            color="red", border_color="#fff", border_width=3
        ),
        tooltip_opts=opts.TooltipOpts(is_show=False),
        areastyle_opts=opts.AreaStyleOpts(color=JsCode(area_color_js), opacity=1),
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="一周各天評論量",
            pos_top="5%",
            pos_left="center",
            title_textstyle_opts=opts.TextStyleOpts(color="#fff", font_size=16),
        ),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            boundary_gap=True,
            axislabel_opts=opts.LabelOpts(margin=30, color="#ffffff63"),
            axisline_opts=opts.AxisLineOpts(is_show=False),
            axistick_opts=opts.AxisTickOpts(
                is_show=True,
                length=25,
                linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
            ),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
            ),
        ),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            position="left",
            axislabel_opts=opts.LabelOpts(margin=20, color="#ffffff63"),
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(width=2, color="#fff")
            ),
            axistick_opts=opts.AxisTickOpts(
                is_show=True,
                length=15,
                linestyle_opts=opts.LineStyleOpts(color="#ffffff1f"),
            ),
            splitline_opts=opts.SplitLineOpts(
                is_show=True, linestyle_opts=opts.LineStyleOpts(color="#ffffff1f")
            ),
        ),
        legend_opts=opts.LegendOpts(is_show=False),
    )
)
line1.render_notebook()

從一周各天資料分布來看,每周一和每周天是大家評論的活躍時段,很有意思,一周的開始和一周的結束,在休中開始,在休閑中結束,

3.5 日歷圖

times = [x.strftime('%Y-%m-%d') for x in list(pd.date_range('20210801', '20210831'))]
data = [[times[index],day_y_data[index]] for index,item in enumerate( day_y_data)]
Cal = (
    Calendar(init_opts=opts.InitOpts(width="800px", height="500px"))
    .add(
        series_name="八月份每日評論量分布情況",
        yaxis_data=data,
        calendar_opts=opts.CalendarOpts(
             pos_top='20%',
             pos_left='5%',
             range_="2021-08",
             cell_size=40,
             # 年月日標簽樣式設定
             daylabel_opts=opts.CalendarDayLabelOpts(name_map="cn",
                                                     margin=20,
                                                     label_font_size=14,
                                                     label_color='#EB1934', 
                                                     label_font_weight='bold'
                                                    ),
             monthlabel_opts=opts.CalendarMonthLabelOpts(name_map="cn",
                                                         margin=20,
                                                         label_font_size=14,
                                                         label_color='#EB1934', 
                                                         label_font_weight='bold',
                                                         is_show=False
                                                        ),
             yearlabel_opts=opts.CalendarYearLabelOpts(is_show=False),
        ),
        tooltip_opts='{c}',
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(
            pos_top="2%", 
            pos_left="center", 
            title=""
        ),
        visualmap_opts=opts.VisualMapOpts(
            orient="horizontal", 
            max_=2000,
            pos_bottom='10%',
            is_piecewise=True,
            pieces=[{"min": 1200},
                    {"min": 800, "max": 1200},
                    {"min": 500, "max": 800},
                    {"min": 300, "max": 500},
                    {"min": 80, "max": 300},
                    {"max": 80}],
            range_color=["#F5F5F5", "#FFE4E1", "#FFCC99", "#F08080", "#CD5C5C", "#990000"]
        ),
        legend_opts=opts.LegendOpts(is_show=True,
                                    pos_top='5%',
                                    item_width = 50,
                                    item_height = 30,
                                    textstyle_opts=opts.TextStyleOpts(font_size=16,color='#EB1934'),
                                    legend_icon ='path://path://M621.855287 587.643358C708.573965 540.110571 768 442.883654 768 330.666667 768 171.608659 648.609267 42.666667 501.333333 42.666667 354.057399 42.666667 234.666667 171.608659 234.666667 330.666667 234.666667 443.22333 294.453005 540.699038 381.59961 588.07363 125.9882 652.794383 21.333333 855.35859 21.333333 1002.666667L486.175439 1002.666667 1002.666667 1002.666667C1002.666667 815.459407 839.953126 634.458526 621.855287 587.643358Z'
                                   ),
    )
)
Cal.render_notebook()

3.6 角色熱度

主要人物:小白、小青、許仙、法海、司馬、孫姐、牛頭幫主、蒙面男子、寶青坊主、書生

roles=['小白','小青','許仙','法海','司馬','孫姐','牛頭幫主','蒙面男子','寶青坊主','書生']
content=''.join([str(i) for i in list(df['評論'])])
roles_num=[]
for role in roles:
    count=content.count(role)
    roles_num.append((role,count))
roles_num=pd.DataFrame(roles_num)
roles_num.columns=['名稱','出現次數']
roles_num
名稱出現次數
0小白1523
1小青2683
2許仙239
3法海396
4司馬112
5孫姐20
6牛頭幫主1
7蒙面男子3
8寶青坊主101
9書生4
# 線性漸變
color_js = """new echarts.graphic.LinearGradient(0, 1, 0, 0,
    [{offset: 0, color: '#FFFFFF'}, {offset: 1, color: '#ed1941'}], false)"""

roles_num=roles_num.sort_values(by='出現次數',ascending=False)
roles_num=roles_num.reset_index(drop=True)
b2 = (
        Bar()
        .add_xaxis(list(roles_num['名稱']))
        .add_yaxis('頻次', list(roles_num['出現次數']),itemstyle_opts=opts.ItemStyleOpts(color=JsCode(color_js)))
        .set_global_opts(title_opts=opts.TitleOpts(title='影評角色頻次分布',pos_top='2%',pos_left = 'center'),
            legend_opts=opts.LegendOpts(is_show=False),
            yaxis_opts=opts.AxisOpts(name="頻次",name_location='middle',name_gap=50,name_textstyle_opts=opts.TextStyleOpts(font_size=16)))

    )
b2.render_notebook()

3.7 觀眾地域分布

cities = df['城市'].values.tolist()
data = Counter(cities).most_common(80)
geo = (
    Geo(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#404a59"))
    .add_schema(maptype="china", 
                itemstyle_opts={
                  'normal': {
                      'shadowColor': 'rgba(0, 0, 0, .5)', 
                      'shadowBlur': 5, 
                      'shadowOffsetY': 0, 
                      'shadowOffsetX': 0, 
                      'borderColor': '#fff'
                  }
              }
               )
    .add("評論數量", data,type_=ChartType.HEATMAP,)
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
    .set_global_opts(
       title_opts=opts.TitleOpts(title="地理位置分布",pos_top="2%", pos_left="center",
                                 title_textstyle_opts=opts.TextStyleOpts(color="#fff", font_size=16)),
       legend_opts=opts.LegendOpts(is_show=False),
       visualmap_opts=opts.VisualMapOpts(
            is_show=True,
            is_piecewise=True,
            min_ = 0,
            max_ = 500,
            split_number = 5,
            series_index=0,
            pos_bottom='5%',
            pos_left='5%',
            textstyle_opts=opts.TextStyleOpts(color="#fff"),
            pieces=[
                {'max':500, 'min':401, 'label':'401-500', 'color': '#990000'},
                {'max':400, 'min':301, 'label':'301-400', 'color': '#CD5C5C'},
                {'max':300, 'min':201, 'label':'201-300', 'color': '#F08080'},
                {'max':200, 'min':101, 'label':'101-200', 'color': '#FFCC99'},
                {'max':100, 'min':0, 'label':'0-100', 'color': '#FFE4E1'},
               ],
            ),
    )
)
geo.render_notebook()

從地域分布圖來看,觀眾主要分布在北京、天津、上海、重慶、四川、廣東、云南等地,

行業資料:添加即可領取PPT模板、簡歷模板、行業經典書籍PDF,
面試題庫:歷年經典,熱乎的大廠面試真題,持續更新中,添加獲取,
學習資料:含Python、爬蟲、資料分析、演算法等學習視頻和檔案,添加獲取
交流加群:大佬指點迷津,你的問題往往有人遇到過,技識訓助交流,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/300757.html

標籤:python

上一篇:Python中的字串介紹(上)

下一篇:一起用Python做個自動化短視頻生成腳本,實作熱門視頻流水線生產!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more