python学习-使用pandas库分析excel表,并导出所需的表
核心代码
# 导入pandas库
import pandas as pd
# 导入正则表达式包
import re# 指定Excel文件的路径,这个data.xlsx表为原始表,表内有40个sheet子表
file_path = 'data.xlsx'
# 读取各个子表
allDf = pd.read_excel(file_path, sheet_name=None)
# 获取各个子工作表表名
workSheet = allDf.keys()
# 定义workSheetList ,存放所有子工作表表名
workSheetList = list(workSheet)
# 直接打印
# print(workSheetList)# 创建一个空list,组织
organizationList = []
# 总人数
countList = []
# 未活跃人数
inactiveCountList = []
# 平均周活跃度
userActivityList = []
# 总采纳行数
acceptanceLineNumberList = []
# 总推荐行数
recommendationsLineNumberList = []
# 平均采纳率
acceptanceRateList = []
# 总采纳次数
numberOfAcceptancesList = []
# 总推荐次数
numberOfRecommendationsList = []
# 循环workSheetList 列表,去掉表名以sheet开头的子表名,即无用的sheet表
for j in workSheetList:if j.startswith('Sheet'):workSheetList.remove(j)else:# 使用正则表达式,去掉空stringj = re.sub(r"\s+", "", j)organizationList.append(j)# 读取Excel文件中的子工作表sheetDateFrom = pd.read_excel(file_path, j)# 获取每个工作表的行数rows = len(sheetDateFrom.index)countList.append(rows)# 获取特定列的内容column_8 = sheetDateFrom.iloc[:, 7]# 统计是否获取列,包含“否”的个数count_no = (column_8 == '否').sum()inactiveCountList.append(count_no)activityNum = rows - count_nouserActivity = activityNum / rows# 去掉小数点后面的数,例如50%userActivity = '{:.0%}'.format(userActivity)userActivityList.append(userActivity)# 获取采纳行数的内容,子表第5列的数据acceptanceLineSum = sheetDateFrom.iloc[:, 4].sum()acceptanceLineNumberList.append(acceptanceLineSum)# 获取推荐行数的内容,子表第6列的数据recommendationsLineSum = sheetDateFrom.iloc[:, 5].sum()recommendationsLineNumberList.append(recommendationsLineSum)# 获取采纳次数的内容,子表第11列的数据numberOfAcceptances = sheetDateFrom.iloc[:, 10].sum()numberOfAcceptancesList.append(numberOfAcceptances)# 获取推荐次数的内容,子表第12列的数据numberOfRecommend = sheetDateFrom.iloc[:, 11].sum()numberOfRecommendationsList.append(numberOfRecommend)# 获取采纳率/行的内容,解决除数为0的异常情况if numberOfRecommend == 0:acceptanceRateSum = 0else:acceptanceRateSum = numberOfAcceptances/numberOfRecommendacceptanceRateSum = '{:.0%}'.format(acceptanceRateSum)acceptanceRateList.append(acceptanceRateSum)# 创建一个DataFrame对象,并将组织名称、人数和未活跃人数分别赋值给每一列
data = {'组织': organizationList,'人数': countList,'未活跃人数': inactiveCountList,'周活跃度': userActivityList,'采纳率/行': acceptanceRateList,'总采纳行数': acceptanceLineNumberList,'总推荐行数': recommendationsLineNumberList,'总采纳次数': numberOfAcceptancesList,'总推荐次数': numberOfRecommendationsList}
resultDf = pd.DataFrame(data)
# 显示DataFrame
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.max_colwidth', 1000)
# 解决在控制台输出的列不完整,有...
pd.set_option('expand_frame_repr', False)
print(resultDf)
# 输出表
resultDf.to_excel('output.xlsx', index=False)
输出的结果
组织 人数 未活跃人数 周活跃度 采纳率/行 总采纳行数 总推荐行数 总采纳次数 总推荐次数
0 A部 1 1 0% 0% 0 0 0 0
1 B部 17 9 47% 44% 660 1385 341 777
2 C部 8 4 50% 38% 218 551 137 361
3 D部 8 2 75% 26% 114 444 70 266E
4 E部 8 5 38% 21% 69 468 58 282
5 F部 2 2 0% 0% 0 0 0 0
6 G部 51 27 47% 23% 1362 5820 676 2955
7 H部 13 4 69% 38% 460 1425 261 685
8 I部 25 9 64% 20% 297 1844 192 963
9 J部 2 2 0% 0% 0 0 0 0
10 K部 3 3 0% 0% 0 0 0 0
11 L部 2 2 0% 0% 0 0 0 0
12 M部 63 36 43% 19% 534 3447 219 1150
13 N部 63 26 59% 34% 1659 5354 913 2705
14 总计 267 133 50% 28% 5373 20738 2867 10144进程已结束,退出代码为 0
推荐的插件
Chinese(Simplified)Language·Pack / 中文语言包
特别说明
参考了pycharm 专业版激活码(2024.5亲测可用)最新https://blog.csdn.net/qq_41717536/article/details/136171678
UX394X3HLT-eyJsaWNlbnNlSWQiOiJVWDM5NFgzSExUIiwibGljZW5zZWVOYW1lIjoiSG9uZ2lrIFVuaXZlcnNpdHntmY3snbXrjIDtlZnqtZAiLCJsaWNlbnNlZVR5cGUiOiJDTEFTU1JPT00iLCJhc3NpZ25lZU5hbWUiOiLkvJfliJvkupEg5bel5L2c5a6kIiwiYXNzaWduZWVFbWFpbCI6ImhhbmF6YXdhbWl0b0BnbWFpbC5jb20iLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiJGb3IgZWR1Y2F0aW9uYWwgdXNlIG9ubHkiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IkdPIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRNIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAyNC0xMi0xMyIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUlNVIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJSU0MiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRTIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJSRCIsInBhaWRVcFRvIjoiMjAyNC0xMi0xMyIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlJTRiIsInBhaWRVcFRvIjoiMjAyNC0xMi0xMyIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJSTSIsInBhaWRVcFRvIjoiMjAyNC0xMi0xMyIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRQTiIsInBhaWRVcFRvIjoiMjAyNC0xMi0xMyIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiREIiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRDIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAyNC0xMi0xMyIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUlNWIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IldTIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQU0kiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUENXTVAiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUlMiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiRFAiLCJwYWlkVXBUbyI6IjIwMjQtMTItMTMiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUERCIiwicGFpZFVwVG8iOiIyMDI0LTEyLTEzIiwiZXh0ZW5kZWQiOnRydWV9XSwibWV0YWRhdGEiOiIwMTIwMjMxMjI4TFBBQTAwNDAwOCIsImhhc2giOiI1MjY4NzM4Ny8yNTMxODE0MTotMTUwNDg0MzkwMSIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlLCJ0cmlhbCI6ZmFsc2UsImFpQWxsb3dlZCI6dHJ1ZX0=-YqDHrEIEaf/x1JqIdTI64AYA1IpRoYiqoZ/1YDnfpEqSFNJIC4er7K1hjUm9tFslnY2XoNRs04JSUG8CgNkTgIKA4xLyxGBufJYyHv26UKQmyf1nb1pM9XATb3pWSQ3h6o8/4x3jacVk3zbAuXt3uV6eEj2bCZvhGpATFmK1JVsSor+XgPr5aYePCtyymiyPOq33ghW5onzSI5LsQR5motHvLgWmjf0Mkutys3SmWt13YVcIe5yCzhlTNCZw++CAuRh2Fx/JXZhRt+kUqW2yLbkIo3kNEg2I31H8qya+RDJ09Qz7DsDkrIgODqX4Wbd2fy1C7Q1CcjjksvjhswnpNA==-MIIETDCCAjSgAwIBAgIBDzANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIyMTAxMDE2MDU0NFoXDTI0MTAxMTE2MDU0NFowHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMjEwMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC/W3uCpU5M2y48rUR/3fFR6y4xj1nOm3rIuGp2brELVGzdgK2BezjnDXpAxVDw5657hBkAUMoyByiDs2MgmVi9IcqdAwpk988/Daaajq9xuU1of59jH9eQ9c3BmsEtdA4boN3VpenYKATwmpKYkJKVc07ZKoXL6kSyZuF7Jq7HoQZcclChbF75QJPGbri3cw9vDk/e46kuzfwpGftvl6+vKibpInO6Dv0ocwImDbOutyZC7E+BwpEm1TJZW4XovMBegHhWC04cJvpH1u98xoR94ichw0jKhdppywARe43rGU96163RckIuFmFDQKZV9SMUrwpQFu4Z2D5yTNqnlLRfAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQU5FZqQ4gnVc+inIeZF+o3ID+VhcEwSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBANLG1anEKid4W87vQkqWaQTkRtFKJ2GFtBeMhvLhIyM6Cg3FdQnMZr0qr9mlV0w289pf/+M14J7S7SgsfwxMJvFbw9gZlwHvhBl24N349GuthshGO9P9eKmNPgyTJzTtw6FedXrrHV99nC7spaY84e+DqfHGYOzMJDrg8xHDYLLHk5Q2z5TlrztXMbtLhjPKrc2+ZajFFshgE5eowfkutSYxeX8uA5czFNT1ZxmDwX1KIelbqhh6XkMQFJui8v8Eo396/sN3RAQSfvBd7Syhch2vlaMP4FAB11AlMKO2x/1hoKiHBU3oU3OKRTfoUTfy1uH3T+t03k1Qkr0dqgHLxiv6QU5WrarR9tx/dapqbsSmrYapmJ7S5+ghc4FTWxXJB1cjJRh3X+gwJIHjOVW+5ZVqXTG2s2Jwi2daDt6XYeigxgL2SlQpeL5kvXNCcuSJurJVcRZFYUkzVv85XfDauqGxYqaehPcK2TzmcXOUWPfxQxLJd2TrqSiO+mseqqkNTb3ZDiYS/ZqdQoGYIUwJqXo+EDgqlmuWUhkWwCkyo4rtTZeAj+nP00v3n8JmXtO30Fip+lxpfsVR3tO1hk4Vi2kmVjXyRkW2G7D7WAVt+91ahFoSeRWlKyb4KcvGvwUaa43fWLem2hyI4di2pZdr3fcYJ3xvL5ejL3m14bKsfoOv
如果提示报错,可以配置一下代理,比如
(注意:这样会影响插件、库的下载导入;那么可以在安装插件和导入库之后再配置)
手动代理配置
http
主机名:localhost
端口号:80
相关文章:
python学习-使用pandas库分析excel表,并导出所需的表
核心代码 # 导入pandas库 import pandas as pd # 导入正则表达式包 import re# 指定Excel文件的路径,这个data.xlsx表为原始表,表内有40个sheet子表 file_path data.xlsx # 读取各个子表 allDf pd.read_excel(file_path, sheet_nameNone) # 获取各个子…...

Python中使用C扩展详解
文章目录 1. Python/C API示例2. Cython示例3. ctypes关于C扩展的进一步讨论安全性和兼容性性能优化策略调试C扩展发布和分发C扩展 应用实例:加速矩阵乘法运算1. 准备C扩展代码2. 编译C扩展3. 在Python中使用C扩展 在Python中,使用C扩展是一种提高程序性…...
llama使用tutorial微调(windows版本)
Llama3-Tutorial/docs/assistant.md at main SmartFlowAI/Llama3-Tutorial GitHub 有一些命令需要修改 前期的安装还是要按照教程搞的 streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \ ~/model/Meta-Llama-3-8B-Instruct 改为了 streamlit run .\Ll…...

MyBatis操作数据库(动态SQL)
1 动态SQL 动态SQL是MyBatis的特征之一,能够完成不同条件下不同的SQL拼接 1.1 <if>标签 在注册用户的时候,可能会有这样一个问题,由于注册分为两种字段:必填字段和非必填字段,如果在添加用户的时候有不确定的…...
python发票真伪查验开发文档、票据OCR、数电票查验
想象一下,只需一行行简洁的代码,复杂繁琐的发票审核工作瞬间变得井然有序。翔云发票查验开发文档详尽易懂,即便是Python新手也能迅速上手,搭建起自己的发票真伪查验系统。无论是纸质发票的扫描图像,还是电子发票的数据…...
Unity构建详解(12)——自动构建
【前言】 自动构建是指整个构建流程不需要人工操作,只需要输入启动构建指令即可获取构建结果。实现这样的自动构建需要满足以下条件: 支持命令行参数启动 我们不可能每次构建时都打开Unity去手动点击构建,必须支持通过命令行启动Unity自动执…...
中文编程降低了中文环境下编程入门的门槛
近年来,随着编程技术的普及和中文编程环境的日益成熟,越来越多的开发者开始使用中文进行编程。中文编程不仅提高了代码的可读性和理解性,而且在一定程度上降低了中文环境下编程的入门门槛。本文将详细探讨中文编程的优势,以及它如…...

通过内网穿透免费部署我们的springboot+vue项目 实现跟服务器一样的效果
前文讲到通过内网穿透能够实现远程访问个人电脑的静态资源。本文将讲解通过内网穿透实现远程访问本地的项目,实现跟部署到服务器一样的效果:前文链接:通过内网穿透实现远程访问个人电脑资源详细过程(免费)(…...

SMB攻击利用之-mimikatz上传/下载流量数据包逆向分析
SMB协议作为windows环境下最为常见的一种协议,在历史上出现过无数的通过SMB协议进行网络攻击利用的案例,包括针对SMB协议本身以及通过SMB协议实施网络攻击。 本文将介绍一种通过SMB协议的常见利用方式,即向远程主机传输mimikatz,作为我的专栏《SMB攻击流量数据包分析》中的…...
Mysql常见数据类型探索
Mysql常见数据类型探索 数值类型 MySQL 支持所有标准 SQL 数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC),以及近似数值数据类型(FLOAT、REAL 和 DOUBLE PRECISION)。 关键字INT是INTEGER的同义词,关键字DEC是…...

2024 年第四届长三角高校数学建模竞赛赛题B题超详细解题思路+问题一二代码分享
2024年第四届长三角数学建模竞赛B题详细解题思路 赛道B:人工智能范式的物理化学家 长三角分享资料(问题一代码论文思路)链接(18点更新): 链接:https://pan.baidu.com/s/1lteKvIWNZ4v-Gd7oOcg…...

干货速学!1+X电子商务数据分析:电子商务数据分析的流程
电商数据采集API接口 生活中的数据分析 日常工作和生活中处处都有数据分析的存在,比如消费者在购买不同商品前,经常会对儿“性价比”进行简单分析,价格表现为固定的货币数字。性能则具体体现在商品质量、客户收务等客观因素和客户对该商品的需…...

618好物推荐大赏:2024年必囤好物一网打尽,购物攻略助你抢购无忧!
在618购物狂欢节来临之际,我为大家精心挑选了一系列好物,它们不仅品质卓越,更能在日常生活中为我们带来无限便利与乐趣。这里的每一款产品都经过我严格筛选,只为给你最优质的购物体验。让我们一起在这个618,发现生活中…...
【MySQL】基础操作(DDL,DML,DCL,DQL)
安装教程自行搜索,网上有很多 用户名设置为 root密码设置为 123456可以不这样设置,但要记好用户名密码,相关的代码也要自行更改 打开命令提示符程序(winR打开输入cmd回车) 输入:mysql -uroot -p 回车输入密码即可进入命令行环境…...
工厂自动化升级改造(3)-Modbus与MQTT的转换
什么是MQTT,Modbus,见下面文章 工厂自动化升级改造参考(01)--设备通信协议详解及选型-CSDN博客文章浏览阅读608次,点赞9次,收藏6次。>>特点:基于标准的以太网技术,使用TCP/IP协议栈,支持高速数据传输和局域网内的设备通信。>>>特点:跨平台的通信协议,…...

InnoDB 事务处理机制
文章目录 前言1. 事务处理挑战1.1 事务机制处理的问题1.2 并发事务带来的问题 2. InnodDB 和 ACID 模型2.1 Innodb Buffer Pool2.2 Redo log2.3 Undo log2.4 应用案例 3. 隔离级别和锁机制3.1 事务隔离级别3.1.1 READ UNCOMMITTED3.1.2 READ COMMITTED3.1.3 REPEATABLE READ3.1…...

Thymeleaf
替代jsp 功能:服务器渲染(就是将服务器的数据展示在网页上) 1、MVC概念 model 模型 javaBean(User/Book/Order...) View视图 html 服务器的动态数据 Controller控制器 Servlet MVC是在表述层开发运用的一种设计理念。主张把封装数据…...
网络学习(一)|深入了解API网关:定义、功能和关键术语
文章目录 定义主要功能关键术语 定义 API 网关(API Gateway)是一个核心的服务架构组件,用于管理、路由和保护对后端服务的访问。它充当了系统内外的接口,负责接收来自客户端的请求,并将其路由到相应的后端服务&#x…...

基于yolov8+flask搭建一个web版本的网页模型预测系统
测试环境: anaconda3python3.8 torch1.9.0cu111 ultralytics8.2.2 首先我们将训练好的权重放在weights目录下面 并将名字改成yolov8n.pt,如果不想改可以在代码app.py都把路径改过来即可。然后我们打开 python app.py之后看到 我们点击选择文件支持图…...

【北京迅为】《iTOP-3588从零搭建ubuntu环境手册》-第8章 安装编译所需要的依赖包
RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...