Python学习打卡:day11

day11

笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了

目录

  • day11
    • 83、自定义 Python 包
      • 创建包
      • 导入包
        • 方式1
        • 方式2
        • 方式3
        • 方式4
    • 84、安装第三方包
      • 安装第三方包——pip
        • pip的网络优化
      • 安装第三方包——PyCharm
    • 85、异常—模块—包综合案例
      • 模块1
        • 自写
        • 视频写法
      • 模块2
        • 自写
        • 视频写法
        • 总结
    • 86、JSON数据格式的转换
      • 基础概念
      • json 数据的格式:字典以及 内部元素都是字典的列表
      • Python 数据和 Json 数据的相互转化
    • 87、pyecharts 模块简介
    • 88、pyecharts的入门使用
      • 基础折线图
      • pyecharts配置选项
    • 89、数据准备
      • 原始数据格式
      • 数据处理
    • 90、生成折线图
      • 导入模块
      • 折线图相关配置项
        • 折线图相关配置项
        • 创建折线图
        • 添加数据
        • .add_yaxis相关配置选项
        • 全局配置选项(.set_global_opts)
    • 91、数据可视化案例——地图——基础地图的使用
      • 基础地图演示

83、自定义 Python 包

如果Python的模块太多了,就可能造成一定的混乱,那么就需要通过Python包的功能来管理。

从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块文件;

从逻辑上看,包的本质依然是模块。

创建包

构建包的步骤如下

  1. 新建包my_package

  2. 新建包内模块:my_module1my_module2

  3. 模块内代码如下:
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

tips:新建包后,包内部会自动创建 __init__.py 文件,这个文件控制着包的导入行为。

导入包

方式1
import 包名.模块名包名.模块名.目标

示例代码:

import my_package_83.my_module1_83
import my_package_83.my_module2_83my_package_83.my_module1_83.info_print1()
my_package_83.my_module2_83.info_print2()
方式2
from 包名 import 模块名模块名.目标

示例代码:

from my_package_83 import my_module1_83
from my_package_83 import my_module2_83my_module1_83.info_print1()
my_module2_83.info_print2()
方式3
from 包名.模块名 import 目标目标

示例代码:

from my_package_83.my_module1_83 import info_print1
from my_package_83.my_module2_83 import info_print2info_print1()
info_print2()
方式4
from 包名 import *模块名.目标

示例代码:

# 通过 __all__ 变量,控制 import*
from my_package_83 import *
my_module1_83.info_print1()# error,__init__.py 文件中设置了 __all__ 只导入:my_module1_83,因此 my_module2_83 不管用
# my_module2_83.info_print2()

tips:必须在__init__.py文件中添加__all__ = [],控制允许导入的模块列表

84、安装第三方包

在Python程序的生态中,有许多非常多的第三方包(非Python官方),可以极大的帮助我们提高开发效率,如:

  • 科学计算中常用的:numpy包
  • 数据分析中常用的:pandas包
  • 大数据计算中常用的:pyspark、apache-flink包
  • 图形可视化常用的:matplotlib、pyecharts
  • 人工智能常用的:tensorflow

但是由于是第三方,所以Python没有内置,所以我们需要安装它们才可以导入使用。

安装第三方包——pip

第三方包的安装非常简单,我们只需要使用Python内置的pip程序即可。

打开我们许久未见的:命令提示符程序,在里面输入:

pip install 包名称

即可通过网络快速安装第三方包。

pip的网络优化

由于pip是连接的国外的网站进行包的下载,所以有的时候会速度很慢。

我们可以通过如下命令,让其连接国内的网站进行包的安装:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称

安装第三方包——PyCharm


在这里插入图片描述

同样使用国内清华镜像源进行下载:
在这里插入图片描述

85、异常—模块—包综合案例

在这里插入图片描述

模块1

自写
# 自写
def str_reverse(s):str = ""for element in s:str = element + strreturn strdef substr(s, x, y):str1 = ""str2 = ""str3 = ""list = []i = 0if x > y:tmp = xx = yy = tmpwhile i < x:str1 += s[i]i += 1list.append(str1)while i < y:str2 += s[i]i += 1list.append(str2)while i < len(s):str3 += s[i]i += 1list.append(str3)return listif __name__ == '__main__':# print(f"{str_reverse('  hello world  ')}")print(f"{substr('helloworld', 1, 3)}")
视频写法
# 视频写法
def str_reverse(s):"""功能:反转字符串:param s: 将被反转的字符串:return: 反转后的字符串"""return s[::-1]def substr(s, x, y):"""功能:按照给定的下标完成字符串的切片:param s: 即将被切片的字符串:param x: 切片的开始下标:param y: 切片的结束下标:return: 切片完成后的字符串"""return s[x:y]if __name__ == '__main__':print(str_reverse("黑马程序员"))print(substr("黑马程序员", 1, 3))

模块2

自写
def print_file_info(file_name):try:f = open(file_name, "r", encoding="UTF-8")print(f"文件存在,读取的内容为:\n{f.read()}")except:print("文件不存在")finally:f.close()def append_to_file(filename, data):f = open(filename, "a", encoding="UTF-8")f.write(data)f.close()if __name__ == '__main__':# print_file_info("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/02_Python入门语法/74_test.txt")append_to_file("84_test.txt", "helloworld")
视频写法
def print_file_info(file_name):"""功能: 将指定路径的文件内容输出到控制台:param file_name: 即将读取文件的路径:return: None"""f = Nonetry:f = open(file_name, "r", encoding="UTF-8")content = f.read()print("文件内容如下:")print(content)except Exception as e:print(f"程序出现异常,原因是:{e}")finally:if f:f.close()def append_to_file(filename, data):"""功能:将指定的数据追加到指定的文件中:param filename: 指定文件的路径:param data: 指定的数据:return: None"""f = open(filename, "a", encoding="UTF-8")f.write(data)f.write("\n")f.close()if __name__ == '__main__':# print_file_info("84_test.txt")append_to_file("84_test.txt", "good")
总结
  1. 函数写法的规范要记得,包括函数功能的描述、参数的解释

  2. 字符串的切片操作除了 split,还有:

    my_str = "01234567"
    result4 = my_str[::-1]  
    

86、JSON数据格式的转换

基础概念

JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据。

JSON本质上是一个带有特定格式的字符串

主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。

各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型,而其它语言可能没有对应的字典。

为了让不同的语言都能够相互通用的互相传递数据,JSON就是一种非常良好的中转数据格式。如下图,以Python和C语言互传数据为例:
在这里插入图片描述

json 数据的格式:字典以及 内部元素都是字典的列表

# json数据的格式可以是: 
{"name":"admin","age":18} # 也可以是:  
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":20}] 

Python 数据和 Json 数据的相互转化

# 导入json模块 
import json # 准备符合格式json格式要求的python数据 
data = [{"name": "老王", "age": 16}, {"name": "张三", "age": 20}]# 通过 json.dumps(data) 方法把python数据转化为了 json数据 
data = json.dumps(data) # 通过 json.loads(data) 方法把json数据转化为了 python数据 
data = json.loads(data)

示例代码:

"""
演示 JSON 数据和 Python 字典的相互转换
"""
import json# 准备列表,列表内的每一个元素都是字典,将其转化为 JSON
data = [{"name":"张大山", "age":11}, {"name":"王大锤", "age":13}, {"name":"赵小虎", "age":16}]
json_str = json.dumps(data, ensure_ascii=False)
print(type(json_str))
print(json_str)
print("--------------------------------------------------------------")# 准备字典,将字典转换为 JSON
d = {"name":"zhoujielun", "addr":"taibei"}
json_str = json.dumps(d)
print(type(json_str))
print(json_str)
print("--------------------------------------------------------------")# 将 JSON 字符串转换为 Python 数据类型 [{k:v, k:v}, {k:v, k:v}]
s = '[{"name": "张大山", "age": 11}, {"name": "王大锤", "age": 13}, {"name": "赵小虎", "age": 16}]'
l = json.loads(s)
print(type(l))
print(l)
print("--------------------------------------------------------------")# 将 JSON 字符串转换为 Python 数据类型 {k:v, k:v}
s = '{"name": "zhoujielun", "addr": "taibei"}'
d = json.loads(s)
print(type(d))
print(d)# 结果
<class 'str'>
[{"name": "张大山", "age": 11}, {"name": "王大锤", "age": 13}, {"name": "赵小虎", "age": 16}]
-----------------------------------------------------------------------
<class 'str'>
{"name": "zhoujielun", "addr": "taibei"}
-----------------------------------------------------------------------
<class 'list'>
[{'name': '张大山', 'age': 11}, {'name': '王大锤', 'age': 13}, {'name': '赵小虎', 'age': 16}]
-----------------------------------------------------------------------
<class 'dict'>
{'name': 'zhoujielun', 'addr': 'taibei'}

87、pyecharts 模块简介

如果想要做出数据可视化效果图, 可以借助pyecharts模块来完成

概况 :

Echarts 是个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时pyecharts 诞生了。

快速安装

pip install pyecharts

官方画廊

https://gallery.pyecharts.org

88、pyecharts的入门使用

基础折线图

# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts,VisualMapOpts# 创建一个折线图对象
line = Line()# 给折线图对象添加 x 轴的数据
line.add_xaxis(["中国", "美国", "英国"])# 给折线图对象添加 y 轴的数据
line.add_yaxis("GDP", [30, 20, 10])# 通过 render 方法,将代码生成图像
line.render()

结果如下:
在这里插入图片描述

pyecharts配置选项

pyecharts模块中有很多的配置选项, 常用到2个类别的选项:

  • 全局配置选项
  • 系列配置选项

全局配置选项可以通过set_global_opts方法来进行配置, 相应的选项和选项的功能如下:
在这里插入图片描述

示例:

"""
演示 pyecharts 的基础入门
"""# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts,VisualMapOpts# 创建一个折线图对象
line = Line()# 给折线图对象添加 x 轴的数据
line.add_xaxis(["中国", "美国", "英国"])# 给折线图对象添加 y 轴的数据
line.add_yaxis("GDP", [30, 20, 10])# 设置全局配置项
line.set_global_opts(title_opts=TitleOpts(title="GDP展示", pos_left="center", pos_bottom="1%"),legend_opts=LegendOpts(is_show=True),toolbox_opts=ToolboxOpts(is_show=True),visualmap_opts=VisualMapOpts(is_show=True))# 通过 render 方法,将代码生成图像
line.render()

结果:
在这里插入图片描述

89、数据准备

原始数据格式

在这里插入图片描述

数据处理

导入模块:

import json

对数据进行整理,让数据符合 json 格式:

# 处理数据
f_us = open("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/02_Python入门语法/可视化案例数据/折线图数据/美国.txt", "r", encoding="UTF-8")
us_data = f_us.read()   # 美国的全部内容# 去掉不合 JSON 规范的开头
us_data = us_data.replace("jsonp_1629344292311_69436(", "")# 去掉不合 JSON 规范的结尾
# us_data = us_data.replace(");", "")
us_data = us_data[:-2]# JSON 转 Python 字典
us_dict = json.loads(us_data)
# print(type(us_dict))
# print(us_dict)# 获取 trend key
trend_data = us_dict['data'][0]['trend']
# print(type(trend_data))
# print(trend_data)# 获取日期数据,用于 x 轴,取2020年(到314下标结束)
x_data = trend_data['updateDate'][:314]
# print(x_data)# 获取确认数据,用于 y 轴,取2020年(到315下标结束)
y_data = trend_data['list'][0]['data'][:314]
# print(y_data)

90、生成折线图

导入模块

from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts

折线图相关配置项

折线图相关配置项
配置项作用代码实例
init_opts对折线图初始化设置宽高init_opts=opts.InitOpts(width=“1600px”, height=“800px”)
.add_xaxis添加x轴数据.add_xaxis(列表)
.add_yaxis添加y轴数据.add_yaxis(纵坐标标题, 列表)
创建折线图

在这里插入图片描述
这里的**Line()**是构建类对象,我们先不必理解是什么意思,后续在Python高阶中进行详细讲解。

添加数据

在这里插入图片描述

.add_yaxis相关配置选项
配置项作用代码实例
series_name设置图例名称series_name=“美国确诊人数”
y_axis输入y轴数据y_axis=[“列表”]
symbol_size设置点的大小symbol_size=10
label_opts标签设置项:不显示标签label_opts=opts.LabelOpts(is_show=False)
linestyle_opts线条宽度和样式linestyle_opts=opts.LineStyleOpts(width=2)

示例:

在这里插入图片描述

效果如下:

全局配置选项(.set_global_opts)
配置项作用代码实例
title_opts设置图标题和位置title_opts=opts.TitleOpts(title=“标题”, pos_left=“center”)
yaxis_optsy轴配置项yaxis_opts=opts.AxisOpts(name=“累计确诊人数”)
xaxis_optsx轴配置项xaxis_opts=opts.AxisOpts(name=“时间”)
legend_opts图例配置项legend_opts=opts.LegendOpts(pos_left=‘70%’)

示例代码:

.set_global_opts(# 设置图标题和位置 title_opts=opts.TitleOpts(title="2020年 印🇮🇳美🇺🇸日🇯🇵 累计确诊人数对比图",pos_left="center"), # x轴配置项 xaxis_opts=opts.AxisOpts(name=“时间”),    # 轴标题 # y轴配置项 yaxis_opts=opts.AxisOpts(name=“累计确诊人数”),    # 轴标题 # 图例配置项 legend_opts=opts.LegendOpts(pos_left=70%),    # 图例的位置 
)

效果如下:

在这里插入图片描述

示例代码:

"""
演示 可视化需求1:折线图开发
"""
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts# 处理数据
f_us = open("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/02_Python入门语法/可视化案例数据/折线图数据/美国.txt", "r", encoding="UTF-8")
us_data = f_us.read()   # 美国的全部内容f_jp = open("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/02_Python入门语法/可视化案例数据/折线图数据/日本.txt", "r", encoding="UTF-8")
jp_data = f_jp.read()   # 日本的全部内容f_in = open("/home/yin-roc/1-Github/Ubuntu20.04-VMware/pythonProject/Python_Learning/02_Python入门语法/可视化案例数据/折线图数据/印度.txt", "r", encoding="UTF-8")
in_data = f_in.read()   # 日本的全部内容# 去掉不合 JSON 规范的开头
us_data = us_data.replace("jsonp_1629344292311_69436(", "")
jp_data = jp_data.replace("jsonp_1629350871167_29498(", "")
in_data = in_data.replace("jsonp_1629350745930_63180(", "")# 去掉不合 JSON 规范的结尾
# us_data = us_data.replace(");", "")
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]# JSON 转 Python 字典
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)# print(type(us_dict))
# print(us_dict)# 获取 trend key
us_trend_data = us_dict['data'][0]['trend']
jp_trend_data = jp_dict['data'][0]['trend']
in_trend_data = in_dict['data'][0]['trend']
# print(type(trend_data))
# print(trend_data)# 获取日期数据,用于 x 轴,取2020年(到314下标结束)
us_x_data = us_trend_data['updateDate'][:314]
jp_x_data = jp_trend_data['updateDate'][:314]
in_x_data = in_trend_data['updateDate'][:314]
# print(x_data)# 获取确认数据,用于 y 轴,取2020年(到315下标结束)
us_y_data = us_trend_data['list'][0]['data'][:314]
jp_y_data = jp_trend_data['list'][0]['data'][:314]
in_y_data = in_trend_data['list'][0]['data'][:314]
# print(y_data)# 生成图表
line = Line()   # 构建折线图对象# 添加 x 轴数据
line.add_xaxis(us_x_data)   # x 轴是公用的,所以使用一个国家的数据即可# 添加 y 轴数据
line.add_yaxis("美国确诊人数", us_y_data, label_opts=LabelOpts(is_show=False))
line.add_yaxis("日本确诊人数", jp_y_data, label_opts=LabelOpts(is_show=False))
line.add_yaxis("印度确诊人数", in_y_data, label_opts=LabelOpts(is_show=False))# 设置全局选项
line.set_global_opts(# 标题设置title_opts=TitleOpts(title="2020年美日印三国确诊人数对比折线图", pos_left="center", pos_bottom="1%"))# 调用 render 方法生成图表
line.render()# 关闭文件对象
f_us.close()
f_jp.close()
f_in.close()

91、数据可视化案例——地图——基础地图的使用

基础地图演示


设置颜色级别:
在这里插入图片描述
在这里插入图片描述

tips:RGB颜色查询对照表
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Exposure X7软件安装包下载 丨不限速下载丨亲测好用

根据使用者情况表明Exposure的设计鼓励您进行创造性的工作&#xff0c;使用涂刷和遮罩工具将效果有选择地应用于图片的特定区域&#xff0c;非破坏性图层使您能够混合预设和调整&#xff0c;以获得无尽的外观。我们都知道Exposure是用于创意照片编辑的最佳图片编辑器&#xff0…

Ruby on Rails Post项目设置网站初始界面

在构建了Ruby的Web服务器后&#xff0c;第三步就可以去掉框架的官方页面&#xff0c;设置自己的网页初始页了。 Linux系统安装Ruby语言-CSDN博客 、在Ubuntu中创建Ruby on Rails项目并搭建数据库-CSDN博客、 Ruby语言建立Web服务器-CSDN博客 了解Ruby onRails项目中的主要文件…

OceanBase v4.2 特性解析:支持并发建表,提升OMS导入效率

背景 OceanBase 4.0版本新增了单日志流架构&#xff0c;使得OBServer单机突破了原有的分区数限制&#xff0c;支持更大数量的分区。 很多业务环境为了处理单机数据量过大的问题&#xff0c;通常采取分库分表的方法&#xff0c;这一方法会导致业务需要创建数十万乃至百万级别的…

贪吃蛇——c语言版

文章目录 演示效果实现的基本功能技术要点源代码实现功能GameStart打印欢迎界面和功能介绍绘制地图创建蛇创建食物 GameRun打印提示信息蛇每走一步 GameEnd蛇死亡后继续游戏 演示效果 贪吃蛇1.0演示视频 将终端应用程序改为控制台主机 实现的基本功能 贪吃蛇地图绘制蛇吃食物的…

apple watch上watchOS网络低级别和高级别区别,以及使用tcp/udp或者websocket的限制条件

可以直接看官方文档&#xff1a;TN3135: Low-level networking on watchOS | Apple Developer Documentation 高级网络&#xff1a;包括 URLSession 中的 HTTP 和 HTTPS 支持&#xff0c;以及在此之上的任何代码层。 低层网络&#xff1a;包括网络框架、 NSStream 和任何其他…

第 402 场 LeetCode 周赛题解

A 构成整天的下标对数目 I 计数&#xff1a;遍历 h o u r s hours hours &#xff0c;记录 h o u r s [ i ] % 24 hours[i]\%24 hours[i]%24 的出现次数 class Solution {public:long long countCompleteDayPairs(vector<int>& hours) {vector<int> cnt(24);…

苹果的后来者居上策略:靠隐私保护打脸微软

01.苹果与微软相比更注重用户隐私 我一直是Windows的忠实用户&#xff0c;但微软疯狂地将人工智能融入一切&#xff0c;让我开始觉得应该咬咬牙换成Mac。 自小我几乎只用Windows电脑&#xff0c;所以我对MacOS一直不太适应。虽然Windows 11有其缺点&#xff0c;但总的来说&am…

Pytorch构建vgg16模型

VGG-16 1. 导入工具包 import torch.optim as optim import torch import torch.nn as nn import torch.utils.data import torchvision.transforms as transforms import torchvision.datasets as datasets from torch.utils.data import DataLoader import torch.optim.lr_…

阿里CEO个人投资的智驾公司,走了不一样的路

佑驾创新在去年8月和11月完成两轮融资&#xff0c;在今年5月底递表港交所&#xff0c;目前拿到了29家车企88款车型的量产订单。自动驾驶赛道不缺明星&#xff0c;这些因素本不足以凸显它的差异化。但是在招股书中&#xff0c;一条特殊的发展路线&#xff0c;却让佑驾创新显得不…

DB9母头接口定义485

在通信技术中&#xff0c;DB9接口广泛应用于串行通信&#xff0c;尤其是在RS232和RS485标准中。虽然DB9接口最常见于RS232通信&#xff0c;但通过适当的引脚映射&#xff0c;它也可以用于RS485通信。本文将详细介绍如何定义和使用DB9母头接口进行RS485连接。 DB9母头接口简介 …

②-Ⅱ单细胞学习-组间及样本细胞比例分析(补充)

数据加载 ①单细胞学习-数据读取、降维和分群_subset函数单细胞群-CSDN博客‘ #2024年6月20日 单细胞组间差异分析升级# rm(list = ls()) library(Seurat)#数据加载(在第一步已经处理好的数据) load("scedata1.RData")#这里是经过质控和降维后的单细胞数据 tabl…

蓝牙模块在智能城市构建中的创新应用

随着科技的飞速发展&#xff0c;智能城市的概念已经逐渐从理论走向实践。物联网技术作为智能城市构建的核心驱动力&#xff0c;正在推动着城市基础设施、交通管理、环境监测等领域的深刻变革。蓝牙模块&#xff0c;作为物联网技术的重要组成部分&#xff0c;以其低功耗、低成本…

java文件IO操作

前言&#xff1a; java里面的文件操作分为文件系统操作和文件内容操作。文件系统操作主要是针对File这个类来进行操作&#xff0c;而文件内容操作总的来说有四个&#xff1a;Reader&#xff0c;Writer&#xff0c;InputStream&#xff0c;OutputStream&#xff0c;前面两个是通…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(七)质量相关法律法规及《管理体系审核员准则》2021修订3

5、质量管理体系基础考试大纲 3.3法律法规和其他要求 a)《中华人民共和国民法典》第三编 合同&#xff1b; b)《中华人民共和国消费者权益保护法》 c)《中华人民共和国产品质量法》 d) 中国认证认可协会相关人员注册与管理要求 目 录 前 言 第一章 总则 1.1 引言 1.2 适…

重学java 79.JDK新特性 ⑤ JDK8之后的新特性

别怕失败&#xff0c;大不了重头再来 —— 24.6.20 一、接口的私有方法 Java8版本接口增加了两类成员: 公共的默认方法 公共的静态方法 Java9版本接口又新增了一类成员: 私有的方法 为什么IDK1.9要允许接口定义私有方法呢? 因为我们说接口是规范&#xff0c;规范是…

由于找不到msvcp140.dll无法继续执行代码是什么意思,解决msvcp140.dll文件

由于找不到msvcp140.dll无法继续执行代码这种提示&#xff0c;你知道要怎么去处理么&#xff1f;出现这情况&#xff0c;你的程序就代表出现问题了&#xff0c;你会发现打不开&#xff0c;我们需要修复msvcp140.dll文件才能正常的使用程序。今天我们就来聊聊msvcp140.dll找不到…

加密好的WPSword文档,忘记密码怎么办?

在日常办公和学习中&#xff0c;我们经常使用WPS Word等文档处理软件来创建和编辑重要文件。为了保护这些文件不被未经授权的人访问&#xff0c;我们通常会选择给文档设置密码。然而&#xff0c;有时我们可能会因为时间久远或其他原因而忘记自己设置的密码&#xff0c;这时该如…

【Go】用 DBeaver、db browser 和 SqlCipher 读取 SqlCipher 数据库

本文档主要描述如何用 DBeaver、db browser 和 SqlCipher 上打开加密的 SQLite3 数据库(用 SqlCipher v3 加密) 软件版本 DBeaver&#xff1a;v24.1.0 SQLite-driver: sqlite-jdbc-3.46.0.0.jar dbbrowser-for-sqlite-cipher&#xff1a;3.12.2 SqlCipher cli(ubuntun)&am…

如何避免在React中的回调函数中使用箭头函数可能引起的内存泄漏?

在React中&#xff0c;箭头函数在回调函数中的使用确实可能引发性能问题&#xff0c;尤其是当这些函数在渲染方法或者组件内部被定义时。每次组件重新渲染时&#xff0c;都会创建这些函数的新实例&#xff0c;这可能导致不必要的计算和内存使用&#xff0c;甚至在某些情况下引发…

2024年了,上大学可以不需要用到电脑吗?

前言 在2024年的今天&#xff0c;电脑已经成为了人们工作生活的一大部分。Oh, no&#xff01;好像手机才是。 好像每个人都是这样的&#xff1a;可以没有电脑&#xff0c;但不能没有手机…… 所以2024年的今天&#xff0c;上大学的小伙伴们可以不需要用到电脑吗&#xff1f;…