
python
文章平均质量分 85
探索 Python 编程的无限可能
WishYouAFortune
骐骥一跃,不能十步;驽马十驾,功在不舍。
展开
-
【python部分知识点简记】
使用示例print(result) # 输出: True 或 False 根据实际情况尽管 GIL 限制了 Python 多线程在 CPU 密集型任务中的应用,但在 I/O 密集型任务中,多线程仍然是一种有效的并发执行方式。理解 GIL 的工作原理和多线程的使用方式,可以帮助你更好地利用 Python 进行并发编程。Python的全局解释器锁(GIL)限制了多线程的并行执行能力。GIL确保了任何时候都只有一个线程在运行Python字节码。原创 2024-07-18 10:09:59 · 731 阅读 · 0 评论 -
Redis 数据结构的常用的应用场景
Redis 数据结构的常用的应用场景:字符串(String)列表(List)集合(Set)有序集合(Sorted Set)哈希(Hash)位图(Bitmaps)超日志(HyperLogLogs)发布/订阅(Pub/Sub)地理空间(Geospatial)流水线(Pipeline)事务(Transactions)脚本(Scripts)集群(Cluster)原创 2024-07-11 09:49:25 · 412 阅读 · 0 评论 -
Apache Spark详解
请注意,这只是一个高层次的示例,实际银行业务的数据处理流程会更加复杂,包括更多的数据清洗步骤、特征工程、模型选择和调优。通常是为了处理大规模数据集,执行复杂的数据分析和机器学习任务,然后将结果存储回数据库,并通过Django的Web界面或API展示这些结果。这可能需要在你的Django设置文件中配置Spark的配置参数,或者在你的代码中动态设置。通过这些步骤,你可以将Spark的强大数据处理和分析能力集成到Django项目中,实现从数据加载、处理、分析到结果展示的完整流程。原创 2024-07-10 21:29:08 · 1605 阅读 · 0 评论 -
【每日练题-leecode76. 最小覆盖子串】
时间复杂度:O(m + n)空间复杂度:O(k + min(m, k)),其中 k 是t中不同字符的数量,且 k <= n。在最坏情况下,空间复杂度为 O(m)。请注意,这里的分析假设字符集的大小(k)相对于 m 和 n 是较小的,这在实际应用中通常是成立的,因为字符集的大小通常是一个常数。如果字符集非常大,那么空间复杂度可能会接近 O(m) 或 O(n)。原创 2024-07-10 16:43:45 · 1121 阅读 · 0 评论 -
数据库和缓存基础(mysql,redis等)
事务是一系列操作,这些操作作为一个整体被执行,以确保数据库的完整性。原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成。一致性(Consistency):事务必须保证数据库从一个一致的状态转移到另一个一致的状态。隔离性(Isolation):并发执行的事务之间不会互相影响。持久性(Durability):一旦事务提交,它对数据库的改变就是永久性的,即使系统发生故障也不会丢失。MySQL通过InnoDB存储引擎支持事务处理。原创 2024-07-07 11:00:00 · 1622 阅读 · 0 评论 -
计算机网络编程和并发的知识
防火墙是一种网络安全系统,用于监控进出网络流量并根据预定的安全规则进行过滤。防止未经授权的访问:确保只有合法的流量能够进入或离开网络。过滤内容:阻止恶意软件、垃圾邮件等。管理流量:控制数据流,优化网络性能。并发两个或多个事件在同一时间段内发生。在多线程环境中,多个任务交替执行。并行两个或多个事件同时发生。在多核处理器上,多个任务可以真正地同时运行。异步非阻塞指的是在程序执行过程中,当遇到需要等待的操作(如I/O)时,不会阻塞当前执行的线程或进程,而是允许其他任务继续执行。原创 2024-07-07 00:20:34 · 1034 阅读 · 0 评论 -
Scrapy爬虫框架详解(python)
Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。Scratch,是抓取的意思,这个Python的爬虫框架叫Scrapy,大概也是这个意思吧,就叫它:小抓抓吧。原创 2024-07-06 23:16:57 · 1971 阅读 · 0 评论 -
Django 和 Django REST framework 创建对外 API
通过这些步骤,你可以创建一个对外提供的 Web API,允许客户端通过 HTTP 请求进行数据交互。为你的 API 提供文档,可以使用 Django REST framework 的内置文档生成器或第三方工具如 Swagger。你可以使用 Postman、curl 或 Django REST framework 的 browsable API 来测试。确保你的 API 安全,使用 HTTPS、输入验证、安全头部等措施来保护 API。实施监控和日志记录机制,以便跟踪 API 的使用情况和性能问题。原创 2024-07-01 22:10:10 · 421 阅读 · 0 评论 -
redis.conf 参数详解,方便进行性能优化配置
建议在修改配置文件之前,先了解每个参数的作用和影响,并根据实际情况进行合理的配置。:在执行 RDB 保存时,是否同步删除旧的 RDB 文件,默认为。:从服务器在与主服务器失去连接时,是否响应客户端请求,默认为。:当内存达到上限时的淘汰策略,除了前面提到的常见策略,还包括。:从节点与主节点的最大延迟时间,超过此值的从节点被视为不健康。:在集群模式下,是否要求所有的键空间都被覆盖,默认为。:从节点与主节点失联后,判定从节点失效的时间放大倍数。:是否禁止从节点在主节点故障时进行故障转移,默认为。原创 2024-06-21 11:43:22 · 1683 阅读 · 0 评论 -
Python中*args 和**kwargs的用法
..传一个位置参数调用此函数(13,)传多个参数调用此函数它接收元组作为位置参数,而非是常见的参数列表。在这里,”args”是个元组。在我们解释中不要担心”常见的参数”这部分的理解,这个会在接下来的例子中逐渐明了。在上个例子中,调用函数打印”args”时,他会打印元组中包含的所有数值。我们重新定义函数,”*args”与”常规参数列表”混合使用...在这个函数定义中,参数”a”代表”常规参数列表”。a is 11很容易看到,’a’打印出为11,即第一个位置参数。原创 2024-06-15 19:44:45 · 1092 阅读 · 0 评论 -
最大子数组和(普通数组)
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。原创 2024-06-13 16:59:23 · 315 阅读 · 0 评论 -
滑动窗口最大值(子串-hard)
这种方法通过巧妙地利用双端队列的特性,能够高效地实时维护窗口内的最大值信息,从而在一次遍历中就得到所有窗口的最大值,达到了较好的时间和空间复杂度。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。原创 2024-06-13 16:45:40 · 361 阅读 · 0 评论 -
560. 和为 K 的子数组
来存储前缀和以及其出现的次数,初始时前缀和为 0 的出现次数为 1。然后遍历数组中的每个元素。同时,将当前前缀和在哈希表中的出现次数加 1(如果已经存在就更新次数,否则添加新的项)。这样,通过一次遍历数组,利用哈希表快速查找和统计,就能高效地得到和为。是否在哈希表中,如果在,就说明存在一个子数组的和为。,那么将对应的出现次数累加到结果计数。我们使用前缀和的方法来解决这个问题。子数组是数组中元素的连续非空序列。对于当前元素,计算前缀和。首先,定义一个哈希表。原创 2024-06-13 15:05:00 · 264 阅读 · 0 评论 -
Python常用数据结构增删改查
会返回被删除键对应的值。- 如果键不存在,可能会引发异常(可以通过提供默认值来避免异常)。- 只是简单地删除指定键及其对应的值,不会返回该值。- 如果键不存在,也会引发异常。需要注意的是,不能像列表那样进行增加元素(如。)的操作,因为元组是不可变的。)和修改元素、删除元素(如。原创 2024-06-12 18:49:32 · 542 阅读 · 2 评论 -
redis分布式锁
在 `acquire_failover` 方法中,等待故障转移锁过期,然后遍历从节点尝试获取锁。2. **从节点故障处理**:在获取锁的过程中,如果从节点连接失败,将其记录到故障节点集合中。1. **故障转移锁**:引入了故障转移锁,用于检测主节点的故障。如果需要,释放当前锁并获取故障转移锁。通过以上优化,可以提高分布式锁的可靠性和容错性,在节点故障或网络问题发生时能够进行自动故障转移,并确保锁的正确释放。- 在 `renew_lock` 方法中,定期检查锁的剩余时间,如果锁即将过期,续租锁。原创 2024-05-23 17:47:20 · 780 阅读 · 1 评论 -
链表mark
接下来说一说链表的定义。链表节点的定义,很多同学在面试的时候都写不好。这是因为平时在刷leetcode的时候,链表的节点都默认定义好了,直接用就行了,所以同学们都没有注意到链表的节点是如何定义的。而在面试的时候,一旦要自己手写链表,就写的错漏百出。原创 2024-05-28 23:01:40 · 1027 阅读 · 0 评论 -
Pandas
报错:ImportError: No module named MySQLdb对于不同的系统和程序有如下的解决方法:easy_install mysql-python (mix os)pip install mysql-python (mix os)apt-get install python-mysqldb (Linux Ubuntu)cd/usr/ports/databases/p原创 2023-11-03 22:41:59 · 61 阅读 · 0 评论 -
FastAPI入门
main.pytodos = ["写博客", "看电影", "玩游戏"]"""处理用户发送过来的 todolist 数据"""在这里我说一下为什么要将状态码设置为302,如果你不设置这个status_code,浏览器发送给后端的请求状态码为307,因为307的状态码是不能从post请求跳转到get请求,原因是post请求如果要跳转到get请求不通用,如果想进行跳转,需要将307更改为302。原创 2024-05-24 16:11:09 · 2349 阅读 · 1 评论 -
RPC的入门应用
RPC 的全称是 Remote Procedure Call ,是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服务的还是远程的接口/服务,本质上编写的调用代码基本相同。说起RPC,就不能不提到分布式,这个促使RPC诞生的领域。假设你有一个计算器接口,Calculator模块,以及它的实现类CalculatorImpl,那么在系统还是单体应用。原创 2024-05-10 12:04:45 · 711 阅读 · 0 评论 -
flask的一些简要基础问答
蓝图是 Flask 中的一个模块,可以将不同的视图和路由组织在一起,方便管理和维护。这样可以保证在多线程环境下,每个线程访问的上下文都是独立的,避免了上下文数据的竞态条件和数据不一致性的问题。通过使用 blinker,可以方便地在不同的组件之间进行通信和协调,当特定的事件发生时,可以触发相关的处理函数。简单来说,其原理是:当客户端进行第一次请求时,服务器创建 Session,并将 Session 内容填写入响应的 Cookie 中返回给客户端,客户端的 Cookie 中便保存了用户的数据。原创 2024-05-29 17:34:55 · 1017 阅读 · 0 评论 -
关于django的一些基础问答
当启用 CSRF 保护时,Django 会在表单中添加一个隐藏字段,其中包含一个随机生成的令牌。Django 是一个功能强大、全面且高度规范化的 Web 框架,它提供了丰富的内置功能和工具,适合构建复杂的 Web 应用。提供了一套完善的工具和机制来构建 API,提高了开发效率,提供了序列化、认证、授权等功能,使 API 开发更加规范和便捷。需要安装相应的库,并在配置中指定 Redis 作为缓存后端,设置连接信息等。方法中添加创建日志记录的代码,或者通过信号机制,在数据保存时触发信号来处理日志记录。原创 2024-05-29 17:10:08 · 791 阅读 · 0 评论 -
【消息队列(MQ)RabbitMQ以及RPC简记】
通配符交换机”与之前的路由模式相比,它将信息的传输类型的key更加细化,以“key1.key2.keyN....”的模式来指定信息传输的key的大类型和大类型下面的小类型,让消费者可以更加精细的确认自己想要获取的信息类型。而在消费者一段,不用精确的指定具体到哪一个大类型下的小类型的key,而是可以使用类似正则表达式(但与正则表达式规则完全不同)的通配符在指定一定范围或符合某一个字符串匹配规则的key,来获取想要的信息。(这里与我们一般的正则表达式的“*”和“#”刚好相反,这里我们需要注意一下。原创 2024-05-07 17:29:46 · 966 阅读 · 0 评论 -
Python中有许多流行的统计分析库
用途:Pandas是用于数据操作和分析的强大库,提供了高性能、灵活且易于使用的数据结构,如Series和DataFrame。主要用法:数据清洗、数据重塑、数据聚合、数据分组、数据合并、时间序列处理、数据可视化等。主要用法:绘制统计图表、处理分类数据、绘制分布图、绘制相关性矩阵图、多变量分析等。主要用法:线性回归、时间序列分析、假设检验、方差分析、逻辑回归、生存分析等。主要用法:数值积分、优化、插值、信号处理、图像处理、统计分析、线性代数等。主要用法:绘制线图、散点图、柱状图、饼图、箱线图、热图、3D图等。原创 2023-11-03 22:30:52 · 501 阅读 · 0 评论 -
数组基础-笔记
数组是非常基础的数据结构,实现运用和理解是两回事数组是存放在连续内存空间上的相同类型的数据的集合可以方便的通过下表索引的方式获取到下标下对应的数据。举一个字符数组的例子:注意两点:数组下标从0开始数组内存空间的地址是连续的正因为数组的内存空间地址连续,索引删除或添加元素时,会移动其他元素地址例如删除下标为3的元素,需要对下表为3的元素后面的虽有元素都要做移动操作。如图所示那二位数组在内存的空间地址是连续的么不同编程语言的内存管理是不一样的。1.二分查找。原创 2024-05-27 11:44:51 · 845 阅读 · 0 评论 -
关于自己对redis的一些理解和笔记
• String:是一种二进制安全的数据结构,可以用来存储任何类型的数据,比如字符串、整数、浮点数、图片(图片的 base64 编码或者解码或者图片的路径)、序列化后的对象。跳表(Skip List)是一种基于有序链表的数据结构,它通过在原始链表中增加一些额外的指针,实现了快速查找、插入和删除元素的功能。跳表的主要特点是可以在 O(log n) 的时间复杂度内完成对链表中元素的查找操作,相比于传统的有序链表,其效率有了很大的提高。在跳表中,原始链表的具体实现方式可以根据具体的需求和场景来选择。原创 2024-05-23 17:43:21 · 819 阅读 · 1 评论 -
Python 分布式任务队列 celery
celery中通过@task的装饰器来进行申明celery任务,其他操作无任何差别# 任务的定义# 简单任务 tasks.py@app.task@app.task定时任务和实时任务的区别主要是要申明何时执行任务,任务本身也是通过task装饰器来申明 何时执行任务有2种指定频率执行:sender.add_periodic_task(时间频率单位s, 任务函数, name='to_string')crontab方式:分钟/小时/天/月/周粒度, 可以支持多种调度# 任务的定义。原创 2024-05-16 17:47:29 · 1366 阅读 · 4 评论