当前位置: 首页 > news >正文

Python爬虫与数据分析:中国大学排名的深度挖掘

前言

👉 小编已经为大家准备好了完整的代码和完整的Python学习资料,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】

一、选题背景

              高考作为中国学生生涯中最为重要的事,在高考之后,选择一所好的大学则是接下的人生的一块的敲门砖,选择有着好的大学,和有着良好教育氛围的城市以及所选择的大学近年来的变化是很重要的事,在以前,想要了解这些需要翻阅查找大量的资料,而现在我们可以通过python轻易地了解这些。

二、爬虫方案设计

1.方案名称:

  中国大学年排名变化数据与可视化分析

2.爬取的内容与数据特征分析:

  通过网站收录的中国大学截止到2019年的排名(因为2020到2021年的疫情对排名变化)

3. 方案概述

  分析网站页面结构,找到爬取数据的位置,根据不同的数据制定不同的爬取方法

三、网站页面结构分析

  1.网页页面的结构与特性分析

  通过浏览器“审查元素”查看源代码及“网络”反馈

可以看到每一个 tr 里面都有一行数据,这就是所需要的数据,通过 contents 获取标签对里面的数据。

四、爬虫程序设计

     1. 数据的爬取

import requests
from lxml import html
def Tree(url):req = requests.get(url)req.encoding ='utf-8-sig'allUniv = []tree = html.fromstring(req.text)trs = tree.xpath('//tbody/tr')for tr in trs:tds = tr.xpath('td')if tds == 0:continueoneUniv=[]oneUniv.append(tds[0].text)name = tds[1].xpath('div')oneUniv.append(name[0].text)for td in tds[2:]:oneUniv.append(td.text)allUniv.append(oneUniv)return allUnivurl='http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html'
tree=Tree(url)
print("排名   学校名称   省市   总分")
for i in range(20):print(tree[i][0],tree[i][1],tree[i][2],tree[i][3],sep='   ')from bs4 import BeautifulSoup
def Req(url):req=requests.get(url)req.encoding='utf-8-sig'allUniv=[]soup=BeautifulSoup(req.text,"html.parser")trs=soup.find_all('tr')for tr in trs:tds=tr.find_all('td')if len(tds)==0:continueoneUniv=[]for td in tds:oneUniv.append(td.string)allUniv.append(oneUniv)return allUnivallUniv1=Req(url)
print("排名   学校名称   省市   总分")
for i in range(20):print(allUniv1[i][0],allUniv1[i][1],allUniv1[i][2],allUniv1[i][3],sep='   ')import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"]
name=[]
sorce=[]
for i in range(10):name.append(allUniv1[i][1])sorce.append(float(allUniv1[i][3]))
plt.barh(range(len(sorce)),sorce,tick_label=name)
plt.title("2019年排名前十位的大学及其总分")
plt.xlabel('分数')
plt.show()from collections import Counter
province=[]
for i in range(len(allUniv1)):province.append(allUniv1[i][2])
result=Counter(province)
print(result)

2.数据简单分析且可视化

    (1)绘制饼状图

import matplotlib as mpl
mpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
plt.pie(result.values(),labels=result.keys(),radius=2)
plt.title("各省份大学数量占比饼状图")
plt.show()

(2)绘制柱状图

def dataanly1():df_score = df.sort_values('score',ascending=False) # asc Flase降序 True升序 ; descname1 = df_score.schoolname[:10]  # x轴坐标score1 = df_score.score[:10]    # y轴坐标plt.bar(range(10),score1,tick_label=name1)  # 绘制条形图,用range()能保持x轴顺序一致plt.ylim(10,100)plt.title("大学评分最高Top10",color=colors1)plt.xlabel("大学名称")plt.ylabel("评分")# 标记数值for x,y in enumerate(list(score1)):plt.text(x,y+0.5,'%s' %round(y,1),ha='center',color=colors1)passpl.xticks(rotation=270) # 旋转270°plt.tight_layout()  # 去除空白plt.show()
def DXAnly2():area_count = df.groupby(by='area').area.count().sort_values(ascending=False)# 绘图方法1area_count.plot.bar(color='#4652B1')  # 设置为蓝紫色pl.xticks(rotation=0)  # x轴名称太长重叠,旋转为纵向for x, y in enumerate(list(area_count.values)):plt.text(x, y + 0.5, '%s' % round(y, 1), ha='center', color=colors1)plt.title('各地区大学数量排名')plt.xlabel('地区')plt.ylabel('数量(所)')plt.show()

 

def dataanly1():df_score = df.sort_values('score',ascending=False) # asc Flase降序 True升序 ; descname1 = df_score.schoolname[:10]  # x轴坐标score1 = df_score.score[:10]    # y轴坐标plt.bar(range(10),score1,tick_label=name1)  # 绘制条形图,用range()能保持x轴顺序一致plt.ylim(10,100)plt.title("大学评分最高Top10",color=colors1)plt.xlabel("大学名称")plt.ylabel("评分")# 标记数值for x,y in enumerate(list(score1)):plt.text(x,y+0.5,'%s' %round(y,1),ha='center',color=colors1)passpl.xticks(rotation=270) # 旋转270°plt.tight_layout()  # 去除空白plt.show()

 

     通过所绘制柱状图与饼状图,我们可以清晰地看出优秀大学在各个省份占比,在选择大学的时候,可以优先选择教育资源更加多源,高等教育水平更高的省份城市,

其中前三名的地区是北京、江苏、上海,经济水平较为发达的地区,可以简单的看见高素质教育水平可以影响地区经济的发展。

(4)绘制折线图

from pyecharts.charts import Line
from pyecharts import options as optsline = (Line().add_xaxis(top10_sum.index.tolist()).add_yaxis("总分", top10_sum["总分"].astype('int').tolist()).set_global_opts(title_opts=opts.TitleOpts(title="中国最好大学TOP10(各省份)" ,subtitle="总分"))
)
line.render_notebook()

(5)绘制词云

from PIL import Image
from os import path
from wordcloud import WordCloud
wordcloud=WordCloud(background_color = '#f3f3f3',font_path = 'C:\Windows\Fonts\msyh.ttc',margin=3,max_font_size=60,random_state=50,scale=10,colormap='viridis',)
wordcloud.generate_from_frequencies(result)
plt.imshow(wordcloud,interpolation = 'bilinear')
plt.axis('off')
plt.show()

 (6)各省市大学数量平均分纵向柱状图 

df1.sort_values(by=['平均分'], ascending=False, inplace=True)
d1 = df1.index.tolist()
d2 = df1['数量'].values.tolist()
d3 = df1['平均分'].values.tolist()bar0 = (Bar().add_xaxis(d1).add_yaxis('数量', d2).add_yaxis('平均分数', d3).set_global_opts(title_opts=opts.TitleOpts(title='中国大学排名'),yaxis_opts=opts.AxisOpts(name='量'),xaxis_opts=opts.AxisOpts(name='省份'),)
)

(7)各省市大学数量平均分横向柱状图

df1.sort_values(by=['平均分'], inplace=True)d1 = df1.index.tolist()
d2 = df1['数量'].values.tolist()
d3 = df1['平均分'].values.tolist()bar1 = (Bar().add_xaxis(d1).add_yaxis('数量', d2).add_yaxis('平均分数', d3).reversal_axis().set_series_opts(label_opts=opts.LabelOpts(position='right')).set_global_opts(title_opts=opts.TitleOpts(title='中国大学排名'),yaxis_opts=opts.AxisOpts(name='省份'),xaxis_opts=opts.AxisOpts(name='量'),)
)

(8)绘制玫瑰图

name = df_counts.index.tolist()count = df_counts.values.tolist()c0 = (Pie().add('',[list(z) for z in zip(name, count)],radius=['20%', '60%'],center=['50%', '65%'],rosetype="radius",label_opts=opts.LabelOpts(is_show=False),).set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c}'))
)

(9)大学地图分布

name = df0.index.tolist()count = df0.values.tolist()m = (Map().add('', [list(z) for z in zip(name, count)], 'china').set_global_opts(title_opts=opts.TitleOpts(title='中国大学排名'),visualmap_opts=opts.VisualMapOpts(max_=40, split_number=8, is_piecewise=True),))

(10)选定绘制折线图

       选择一所大学,查看这所大学今年来的排名变化,这里选择北京邮电大学

sorce2=[]
for i in range(4):url='http://www.zuihaodaxue.cn/zuihaodaxuepaiming'+str(i+2016)+'.html'allUniv=Req(url)for i in range(len(allUniv)):if  allUniv[i][1]=="北京邮电大学":j=ibreaksorce2.append(float(allUniv[j][3]))
print(sorce2)years=[2016,2017,2018,2019]
plt.subplot(1,1,1)
plt.plot(years,sorce2,marker='o')
plt.grid(True)
plt.title("北京邮电大学2016-2019年评分走势")
plt.xlabel('年')
plt.ylabel('分数')
plt.show()

五、代码汇总

import requests
from lxml import htmldef Tree(url):req = requests.get(url)req.encoding ='utf-8-sig'allUniv = []tree = html.fromstring(req.text)trs = tree.xpath('//tbody/tr')for tr in trs:tds = tr.xpath('td')if tds == 0:continueoneUniv=[]oneUniv.append(tds[0].text)name = tds[1].xpath('div')oneUniv.append(name[0].text)for td in tds[2:]:oneUniv.append(td.text)allUniv.append(oneUniv)return allUnivurl='http://www.zuihaodaxue.cn/zuihaodaxuepaiming2019.html'tree=Tree(url)print("排名   学校名称   省市   总分")for i in range(20):print(tree[i][0],tree[i][1],tree[i][2],tree[i][3],sep='   ')from bs4 import BeautifulSoupdef Req(url):req=requests.get(url)req.encoding='utf-8-sig'allUniv=[]soup=BeautifulSoup(req.text,"html.parser")trs=soup.find_all('tr')for tr in trs:tds=tr.find_all('td')if len(tds)==0:continueoneUniv=[]for td in tds:oneUniv.append(td.string)allUniv.append(oneUniv)return allUnivallUniv1=Req(url)print("排名   学校名称   省市   总分")for i in range(20):print(allUniv1[i][0],allUniv1[i][1],allUniv1[i][2],allUniv1[i][3],sep='   ')import csvwith open('text2019.csv', 'w',newline='') as csvfile:writer = csv.writer(csvfile)writer.writerow(['排名','学校名称','省市','总分','指标得分','生源质量(新生高考成绩得分)','培养结果(毕业生就业率)','社会声誉(社会捐赠收入·千元)','科研规模(论文数量·篇)','科研质量(论文质量·FWCI)','顶尖成果(高被引论文·篇)','顶尖人才(高被引学者·人)','科技服务(企业科研经费·千元)','成果转化(技术转让收入·千元)'])for row in allUniv1:writer.writerow(row)import matplotlib.pyplot as pltplt.rcParams["font.sans-serif"]=["SimHei"]
name=[]
sorce=[]for i in range(10):name.append(allUniv1[i][1])sorce.append(float(allUniv1[i][3]))
plt.barh(range(len(sorce)),sorce,tick_label=name)
plt.title("2019年排名前十位的大学及其总分")
plt.xlabel('分数')
plt.show()from collections import Counterprovince=[]
for i in range(len(allUniv1)):province.append(allUniv1[i][2])
result=Counter(province)
print(result)import matplotlib as mplmpl.rcParams["font.sans-serif"]=["SimHei"]
mpl.rcParams["axes.unicode_minus"]=False
plt.pie(result.values(),labels=result.keys(),radius=2)
plt.title("各省份大学数量占比饼状图")from PIL import Image
from os import path
from wordcloud import WordCloudwordcloud=WordCloud(background_color = '#f3f3f3',font_path = 'C:\Windows\Fonts\msyh.ttc',margin=3,max_font_size=60,random_state=50,scale=10,colormap='viridis',)
wordcloud.generate_from_frequencies(result)
plt.imshow(wordcloud,interpolation = 'bilinear')plt.axis('off')
plt.show()
plt.show()def dataanly1():df_score = df.sort_values('score',ascending=False) # asc Flase降序 True升序 ; descname1 = df_score.schoolname[:10]  # x轴坐标score1 = df_score.score[:10]    # y轴坐标plt.bar(range(10),score1,tick_label=name1)  # 绘制条形图,用range()能保持x轴顺序一致plt.ylim(10,100)plt.title("大学评分最高Top10",color=colors1)plt.xlabel("大学名称")plt.ylabel("评分")# 标记数值for x,y in enumerate(list(score1)):plt.text(x,y+0.5,'%s' %round(y,1),ha='center',color=colors1)passpl.xticks(rotation=270) # 旋转270°plt.tight_layout()  # 去除空白plt.show()def DXAnly2():area_count = df.groupby(by='area').area.count().sort_values(ascending=False)# 绘图方法1area_count.plot.bar(color='#4652B1')  # 设置为蓝紫色pl.xticks(rotation=0)  # x轴名称太长重叠,旋转为纵向for x, y in enumerate(list(area_count.values)):plt.text(x, y + 0.5, '%s' % round(y, 1), ha='center',
color=colors1)plt.title('各地区大学数量排名')plt.xlabel('地区')plt.ylabel('数量(所)')plt.show()from PIL import Image
from os import path
from wordcloud import WordCloudwordcloud=WordCloud(background_color = '#f3f3f3',font_path = 'C:\Windows\Fonts\msyh.ttc',margin=3,max_font_size=60,random_state=50,scale=10,colormap='viridis',)
wordcloud.generate_from_frequencies(result)
plt.imshow(wordcloud,interpolation = 'bilinear')
plt.axis('off')
plt.show()from pyecharts.charts import Line
from pyecharts import options as optsline = (Line().add_xaxis(top10_sum.index.tolist()).add_yaxis("总分", top10_sum["总分"].astype('int').tolist()).set_global_opts(title_opts=opts.TitleOpts(title="中国最好大学TOP10(各省份)" ,subtitle="总分"))
)
line.render_notebook()df1.sort_values(by=['平均分'], ascending=False, inplace=True)
d1 = df1.index.tolist()
d2 = df1['数量'].values.tolist()
d3 = df1['平均分'].values.tolist()bar0 = (Bar().add_xaxis(d1).add_yaxis('数量', d2).add_yaxis('平均分数', d3).set_global_opts(title_opts=opts.TitleOpts(title='中国大学排名'),yaxis_opts=opts.AxisOpts(name='量'),xaxis_opts=opts.AxisOpts(name='省份'),)
)df1.sort_values(by=['平均分'], inplace=True)d1 = df1.index.tolist()
d2 = df1['数量'].values.tolist()
d3 = df1['平均分'].values.tolist()bar1 = (Bar().add_xaxis(d1).add_yaxis('数量', d2).add_yaxis('平均分数', d3).reversal_axis().set_series_opts(label_opts=opts.LabelOpts(position='right')).set_global_opts(title_opts=opts.TitleOpts(title='中国大学排名'),yaxis_opts=opts.AxisOpts(name='省份'),xaxis_opts=opts.AxisOpts(name='量'),)
)name = df_counts.index.tolist()count = df_counts.values.tolist()c0 = (Pie().add('',[list(z) for z in zip(name, count)],radius=['20%', '60%'],center=['50%', '65%'],rosetype="radius",label_opts=opts.LabelOpts(is_show=False),).set_series_opts(label_opts=opts.LabelOpts(formatter='{b}: {c}'))
)name = df0.index.tolist()count = df0.values.tolist()m = (Map().add('', [list(z) for z in zip(name, count)], 'china').set_global_opts(title_opts=opts.TitleOpts(title='中国大学排名'),visualmap_opts=opts.VisualMapOpts(max_=40, split_number=8, is_piecewise=True),))sorce2=[]
for i in range(4):url='http://www.zuihaodaxue.cn/zuihaodaxuepaiming'+str(i+2016)+'.html'allUniv=Req(url)for i in range(len(allUniv)):if  allUniv[i][1]=="北京邮电大学":j=ibreaksorce2.append(float(allUniv[j][3]))
print(sorce2)years=[2016,2017,2018,2019]
plt.subplot(1,1,1)
plt.plot(years,sorce2,marker='o')
plt.grid(True)
plt.title("北京邮电大学2016-2019年评分走势")
plt.xlabel('年')
plt.ylabel('分数')
plt.show()

 六、总结

         一所好的大学,对人生的影响是非常巨大的,在力所能及的范围内选择一所位于教育资源更加多源,高等教育水平更高的省份城市的优秀大学是非常重要的事,作为判断标准的数据,在以往单单是一所大学的相关资料就需要通过大量、繁琐的查找与翻阅才能够得到,若是多所大学的多年的变化则需要更多的时间。而现在通过python的则能够相对轻松的得到。

 结语

学会了Python就业还是不用愁的,这些行业在薪资待遇上可能会有一些区别,但是整体来看还是很好的,我也不会说往哪个方向发展是最好的,各取所长选择自己最感兴趣的去学习就好。

作为一个IT的过来人,我自己整理了一些python学习资料,希望对你们有帮助。

朋友们如果需要可以点击下方链接或微信扫描下方二维码都可以免费获取【保证100%免费】。

CSDN大礼包:《2024最新Python全套学习礼包》【安全链接,放心点击】

编程资料、学习路线图、源代码、软件安装包等!

① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习

相关文章:

Python爬虫与数据分析:中国大学排名的深度挖掘

前言 👉 小编已经为大家准备好了完整的代码和完整的Python学习资料,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费】 一、选题背景 高考作为中国学生生涯中最为重要的事,在高考之后,选择一所…...

微软开源库 Detours 详细介绍与使用实例分享

目录 1、Detours概述 2、Detours功能特性 3、Detours工作原理 4、Detours应用场景 5、Detours兼容性 6、Detours具体使用方法 7、Detours使用实例 - 使用Detours拦截系统库中的UnhandledExceptionFilter接口,实现对程序异常的拦截 C软件异常排查从入门到精通…...

js中的getElementById的使用方法

在JavaScript中,document.getElementById()是一种用于通过元素的id属性获取DOM元素的方法。它的作用是返回与指定id匹配的HTML元素。 使用document.getElementById()可以通过元素的id属性直接获取该元素的引用,然后可以使用该引用对元素进行各种操作。例…...

设计模式 - 桥接模式

💝💝💝首先,欢迎各位来到我的博客!本文深入理解设计模式原理、应用技巧、强调实战操作,提供代码示例和解决方案,适合有一定编程基础并希望提升设计能力的开发者,帮助读者快速掌握并灵活运用设计模式。 💝💝💝如有需要请大家订阅我的专栏【设计模式】哟!我会定…...

LeetCode530 二叉搜索树的最小绝对差

前言 题目: 530. 二叉搜索树的最小绝对差 文档: 代码随想录——二叉搜索树的最小绝对差 编程语言: C 解题状态: 成功解决! 思路 注意题目中的二叉搜索树,这个条件暗示每个节点的左子节点肯定小于该节点&am…...

【STM32 FreeRTOS】信号量与互斥锁

二值信号量 二值信号量的本质是一个队列长度为1的队列,该队列就只有空和满两种情况,这就是二值。 二值信号量通常用于互斥访问或任务同步,与互斥信号量比较类似,但是二值信号量有可能会导致优先级翻转的问题,所以二值…...

SP:eric 靶场复现【附代码】(权限提升)

靶机下载地址: https://www.vulnhub.com/entry/sp-eric,274/https://www.vulnhub.com/entry/sp-eric,274/ 1. 主机发现端口扫描目录扫描敏感信息获取 1.1. 主机发现 nmap -sn 192.168.7.0/24|grep -B 2 08:00:27:75:19:80 1.2. 端口扫描 nmap 192.168.7.104 -p…...

SpringBoot项目启动直接结束--已解决

点击启动类&#xff0c;项目启动了&#xff0c;但是却直接停止了。遇到这个问题如何解决呢&#xff1f; 想要项目一直启动是要部署在tomcat服务器上面了&#xff0c;说明现在项目没有运行在tomcat服务器上面。 解决方案: 添加springweb的starter依赖。 <dependency><…...

【笔记】从零开始做一个精灵龙女-画贴图阶段(下)

补充四点&#xff0c;第一&#xff0c;前期画体积用一号或十三号笔刷&#xff0c;压力60&#xff0c;硬度80&#xff0c;体积大一点 2号笔刷比较适合画过渡和软一点的东东 第二&#xff0c; 游戏里面角色原画海报都是发光很亮很透。但是在bp不能画那么亮&#xff0c;因为你进…...

React 学习——react项目中加入echarts图

实现的代码如下&#xff1a; import * as echarts from echarts import { useEffect, useRef } from react; const Home ()>{const chartRef useRef(null);useEffect(()>{// const chartDom document.getElementById(main);//使用id获取节点const chartDom chartRef…...

链表算法题一

​ 旋转链表 旋转链表 首先考虑特殊情况 若给定链表为空表或者单个节点,则直接返回head,不需要旋转操作.题目给定条件范围: 0 < k < 2 ∗ 1 0 9 0 < k < 2 * 10^9 0<k<2∗109,但是受给定链表长度的限制,比如示例2中,k4与k1的效果等价. 那么可以得出kk%l…...

Unity(2022.3.38LTS) - 基础概念

目录 一. 场景 二. 游戏对象 三. 组件 四. 标签 五. 静态游戏对象 六. 保存 一. 场景 Unity 场景是游戏或应用开发中的一个重要概念。 Unity 场景的组成元素&#xff1a; 它通常包含了各种游戏对象&#xff0c;比如 3D 模型、灯光、摄像机、脚本组件、音频源等等。 作用…...

无人机之飞手必看篇

一、熟悉无人机设备 了解你的无人机&#xff1a;熟悉无人机的各个部分&#xff0c;包括遥控器、电池、螺旋桨和摄像头等。 预飞行检查&#xff1a;在每次飞行前进行预检查&#xff0c;确保所有部件正常工作&#xff0c;螺旋桨牢固&#xff0c;电池充满电。 二、选择适当的飞…...

数据结构(11)——二叉搜索树

欢迎来到博主的专栏&#xff1a;数据结构 博主ID:代码小豪 文章目录 二叉搜索树二叉搜索树的声明与定义二叉搜索树的查找二叉搜索树的插入二叉搜索树的中序遍历二叉搜索树的删除 二叉搜索树 二叉搜索树也称二叉排序树&#xff0c;是具备以下特征的二叉树 &#xff08;1&#x…...

如何使用和配置 AWS CLI 环境变量?

欢迎来到雲闪世界。环境变量在配置和保护应用程序方面起着至关重要的作用&#xff0c;在使用 AWS CLI&#xff08;命令行界面&#xff09;时&#xff0c;它们的使用尤其重要。在这篇博客文章中&#xff0c;我们将深入探讨环境变量的世界&#xff0c;探索它们的用途、它们在 AWS…...

七、流程控制

if语句 在go语言中if语句的写法是比较简单的&#xff0c;也是很常见的 func main() {a : trueif a {fmt.Println("a is true")} }if else 语句 func main() {a : trueif !a {fmt.Println("a is true")} else {fmt.Println("a is false")} }el…...

【通过python启动指定的文件】

通过python启动指定的文件 在 Python 中&#xff0c;可以使用os模块的startfile函数&#xff08;在 Windows 系统中&#xff09;或者subprocess模块来启动指定的文件。 以下是使用os模块在 Windows 系统中的示例&#xff1a; import osfile_path "C:\\path\\to\\your\…...

区块链开源的项目有哪些?

区块链领域有许多开源项目&#xff0c;它们覆盖了从基础设施到应用层的不同方面。以下是一些著名的区块链开源项目&#xff1a; 1. Bitcoin (比特币)&#xff1a;第一个去中心化的加密货币&#xff0c;源代码在 GitHub 上开源。它实现了区块链技术的基本概念。 2. Ethereum (…...

3152. 特殊数组 II(24.8.14)

题目 如果数组的每一对相邻元素都是两个奇偶性不同的数字&#xff0c;则该数组被认为是一个 特殊数组 。 你有一个整数数组 nums 和一个二维整数矩阵 queries&#xff0c;对于 queries[i] [fromi, toi]&#xff0c;请你帮助你检查 子数组 nums[fromi…toi] 是不是一个 特殊数组…...

Android 全系统版本文件读写最佳适配,CV 即用(适配到 Android 14)

结合着Android的历史问题&#xff0c;我们需要这样写才行&#xff1a; 首先 manifest 部分 <manifest><!-- Devices running Android 12L (API level 32) or lower --><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" a…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...

Android屏幕刷新率与FPS(Frames Per Second) 120hz

Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数&#xff0c;单位是赫兹&#xff08;Hz&#xff09;。 60Hz 屏幕&#xff1a;每秒刷新 60 次&#xff0c;每次刷新间隔约 16.67ms 90Hz 屏幕&#xff1a;每秒刷新 90 次&#xff0c;…...

计算机系统结构复习-名词解释2

1.定向&#xff1a;在某条指令产生计算结果之前&#xff0c;其他指令并不真正立即需要该计算结果&#xff0c;如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方&#xff0c;那么就可以避免停顿。 2.多级存储层次&#xff1a;由若干个采用不同实现技术的存储…...

P10909 [蓝桥杯 2024 国 B] 立定跳远

# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上&#xff0c;小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时&#xff0…...

codeforces C. Cool Partition

目录 题目简述&#xff1a; 思路&#xff1a; 总代码&#xff1a; https://codeforces.com/contest/2117/problem/C 题目简述&#xff1a; 给定一个整数数组&#xff0c;现要求你对数组进行分割&#xff0c;但需满足条件&#xff1a;前一个子数组中的值必须在后一个子数组中…...