不归路之Python
文章平均质量分 91
自学python之路
宇宙之一粟
InfoQ第二季签约作者
混迹于江湖,江湖却没有我的影子
热爱技术,专注于后端全栈,轻易不换岗
拒绝内卷,工作于软件工程师,弹性不加班
热衷分享,执着于阅读写作,佛系不水文
展开
-
FastAPI 的路由介绍及使用
路由 Router 就像是一个流水线上的线长,协调生产,下达命令给不同的组长进行分工,然后执行基本的任务。路由器的工作目的是,在团队中工作时,您可能必须在团队成员(这里的团队负责人是队长)之间分配复杂性,这将有助于更快地完成项目,正确的 SME 将在该分支/路由器上工作.路由是构建网络应用的一个重要部分。FastAPI 中的路由是灵活和方便的。路由是处理从客户端发送到服务器的 HTTP 请求的过程。HTTP 请求被发送到定义的路由,这些路由有定义的处理程序来处理请求和响应。原创 2023-05-17 14:50:12 · 2466 阅读 · 1 评论 -
一文了解 Python 迭代器介绍及其作用
迭代对象在 Python 中是新颖特别的概念,但实际上就是序列概念的通用化:如果对象时实际保存的序列,或者可以在迭代工具中(如 for 循环)一次产生一个结果的对象,就看做可迭代的。可以说,Python 中迭代器无处不在。原创 2022-09-27 13:24:20 · 5868 阅读 · 0 评论 -
手把手带你入门 API 开发
在本文中,您将学习如何使用👉 Flask、👉SQLite 3(轻易数据库)和 JSON 创建用于数据通信的 REST API。本文使用 4 个最常用的 HTTP 动词:GET、POST、PUT 和 DELETE,对应数据库的 CRUD 操作。原创 2022-07-01 14:14:32 · 3935 阅读 · 0 评论 -
为什么选择学习 Sanic 框架
Web Server 和框架Sanic 称自己既是一个网络框架,也是一个网络服务器。这是什么意思?更重要的是,为什么这很重要?那么什么是 Web Server?Web ServerWeb服务器是一种软件,旨在通过 HTTP 协议传递文档和数据。它的功能是接受传入的 HTTP 请求,对消息进行解码以了解请求试图完成的任务,并提供适当的响应。Web 服务器的语言是 HTTP 协议。我们可以设置一个简单的Sanic服务器,然后从 curl 发出请求,并查看消息。 创建原创 2022-05-02 11:09:32 · 832 阅读 · 0 评论 -
使用 Sanic 框架进行 Python Web 开发
asyncio 模块作为一款异步 Python 3.7+ web 框架,Sanic 最基本的构建块是 Python 标准库中的 asyncio 模块。2014 年初发布的 Python 3.4 是在新添加的 asyncio 模块中将协程概念引入标准库的第一步。 使用标准的 Python 生成器,可以在发生其他事情时暂停函数的执行,然后可以将数据注入该函数以使其恢复执行。 如果那时有一个对象“循环”通过需要工作的任务列表,我们可以同时进入和退出多个函数的执行。 这可以在单个线程中实现“并发”,并且原创 2022-04-30 23:55:32 · 1169 阅读 · 0 评论 -
含泪整理一下Python垃圾回收机制相关资料
内存管理是计算机科学的一个复杂领域,目前正在开发许多技术来提高其效率。内存管理通常分为三个区域内存管理通常分为三个区域,尽管区别有点模糊:硬件内存管理操作系统内存管理应用程序内存管理管理内存的基本问题是知道什么时候保留它包含的数据,什么时候丢弃它,以便可以重用内存。这听起来很容易,但实际上是一个难题,它本身就是整个研究领域。在理想的世界中,大多数程序员都不必担心内存管理问题。不幸...原创 2021-11-23 11:54:24 · 143 阅读 · 0 评论 -
Python 一切皆对象
———— 面向对象 ————鸭子类型抽象基类类变量、对象变量的查找顺序静态方法、类方法、实例方法数据封装和私有属性对象的自省机制上下文管理器contextlib实现上下文管理器super函数的查找顺序mixin继承模式的应用Python中的一切皆对象与Java相比,python的面向对象更彻底。把我们所有能看到的都变成对象函数和类也是对象,属于Python的一等公民...原创 2021-11-23 11:53:14 · 131 阅读 · 0 评论 -
链表常考题及解题套路
链表链表题一般常考定义单链表:一个节点 + 指向下一个节点的指针头指针:第一个节点,head尾指针:最后一个节点,tail双向链表:单链表增加指向前继结点的指针特点增加、删除特别方便,复杂度:O(1)查找、获得第k个元素,复杂度: O(n)实现参考之前的文章: 用最容易的方式学会单链表(Python实现)class ListNode: """链表结点定义 """ def __init__(self, data=0, next_node=None):原创 2020-10-24 18:39:10 · 511 阅读 · 0 评论 -
常考算法思想套路
常考算法暴力法回溯法分支限界法分治法动态规划贪心法暴力法也称枚举法、穷举法、蛮力法。基本思想: 根据提出的问题枚举所有可能状态,并用问题给定的条件检验哪些是需要的,哪些是不需要的,能使命题成立即为其解。框架1: 基本的遍历 + 判断for(循环变量x取所有可能的值): if (x满足指定的条件): # 执行想用的操作 print(x) ... return ...太多数题目如果第一时间不能想出最优解,就可以使用最简单的暴原创 2020-10-24 18:31:44 · 317 阅读 · 0 评论 -
查找算法太复杂?别慌,看看就会了
查找算法在LeetCode刷题或者面试过程中发现,查找问题一直是不可避免的。对任何数据结构的遍历过程无非就是查找过程。我们需要针对某些数据结构的特点如何正确地、高效地进行查找,而查找的过程最需要注意边界控制。下面以二分查找为例。1. 二分查找★★☆目的:在一个含有N个元素的有序数组中有效地的定位目标值。思想:假设在有序数组arr中查找元素k,返回k所在的下标(索引值)。设arr[low,high]是当前的查找区间,确定该区间的中间位置mid=⌊(low+high)//2⌋mid=⌊(low+hi原创 2020-10-24 18:30:03 · 220 阅读 · 0 评论 -
排序算法太多?常用排序都在这了,一篇文章总结和实现所有面试会考的排序算法(基于Python实现)
排序算法一般排序算法最常考的:快速排序和归并排序。这两个算法体现了分治算法的核心观点,而且还有很多出题的可能。更多细节请参考刘宇波老师的:不能白板编程红黑树就是基础差?别扯了。1. 常见的排序算法排序算法很多,除了能写出常见排序算法的代码,还需要了解各种排序的时空复杂度、稳定性、使用场景、区别等。1.1 选择排序1.1.1 思想对于给定的一组序列,第一轮比较选择最小(或最大)的值,然后将该值与索引第一个进行交换;接着对不包括第一个确定的值进行第二次比较,选择第二个记录与索引第二个位置进行交原创 2020-09-10 18:15:46 · 519 阅读 · 0 评论 -
Django入门笔记:第十三章、用户登录
前言从之前的学习我们发现,一直在blog应用中进行开发。本章开始新建另一个App来开发,介绍Django的身份认证模块,实现用户登录、注册、注销。一个简单的登录界面创建应用为了实现用户登录、退出、注册等功能,从而进行用户管理,创建一个新的应用。python manage.py startapp accounts然后我们就多了一个accounts目录,然后在/myblog/settings.py中对新应用进行配置。INSTALLED_APPS = [ ..., 'blog', 'a原创 2020-06-30 23:58:22 · 414 阅读 · 0 评论 -
详解排序算法(Python实现)
sorting-algorithms-pythonPython的内置排序算法与许多其他高级编程语言一样,Python语言提供了使用sorted()函数对数据进行开箱即用的功能。示例:>>> li = [9, 5, 3, 6, 7]>>> sorted(li)[3, 5, 6, 7, 9]冒泡排序冒泡排序是最直接的排序算法之一。它的名称来自算法...原创 2020-05-27 08:51:25 · 419 阅读 · 0 评论 -
深入理解Python多任务编程----多线程
计算机的设计就是为了帮助人类或者模仿人类的某些行为。生活中的多任务:人可以一边唱歌????一边跳舞????、人开车的时候是通过手、脚和眼睛共同配合来驾驶一辆车????。多任务编程就是这样一个鲜明的例子,计算机也可以实现多任务编程:比如一边听歌一边玩游戏、打开浏览器上网同时能登录微信、QQ等聊天工具。那么Python的多任务有哪些方式呢?Python多任务编程的三种方式多线程多进程协程今天我们先来聊一聊Python的多线程编程。线程有两种不同类型的线程:内核线程用户空间线程或用户原创 2020-05-12 18:25:06 · 402 阅读 · 1 评论 -
Python字典按键/值排序的几种方法
本文介绍对Python字典的按键和按值排序的几种方式。按键排序# 对字典按键排序def sort_by_key(d): ''' d.items() 返回元素为 (key, value) 的可迭代类型(Iterable), key 函数的参数 k 便是元素 (key, value),所以 k[0] 取到字典的键。 ''' return sorted(d.items(), key=lambda k: k[0])def main(): dic = {'a': 2018, 'z'原创 2020-05-09 13:57:22 · 1361 阅读 · 0 评论 -
Django入门:第十二章、回顾与主页改版
前言本章将对前面所学的知识进行一个简单的回顾。第1-2章对Django作了一些简单的介绍与如何安装Django;第3章完成了程序员入门的重大仪式——Hello World!,写了Django第一个视图函数;然后为了创建一个简单的博客应用;第4-6章对博客模型进行简单的设计、建立、迁移与操作;第7章利用Django自带的超级管理员进行博客文章发布;第8章简单进行模版引擎设置,为了方便后面...原创 2020-05-01 23:36:36 · 294 阅读 · 0 评论 -
Django入门:第十一章、基础模板
Title: Django入门:第十一章、基础模板Author:宇宙之一粟Time: 2019年11月8日回顾在上一章中,我们成功的将静态文件设置好。已经将bootstrap-4.3.1下的css和js文件导入,也已经简单的使用bootstrap.min.css将我们得博客变得好看一点,不过细心的读者发现,我们使用的home.html和content.html文件中包含重复的HTML代...原创 2020-04-30 22:53:20 · 308 阅读 · 0 评论 -
如何利用Python实现二分查找(迭代和递归)
“Although the basic idea of binary search is comparatively straightforward, the details can be surprisingly tricky, and many good programmers have done it wrong the first few times they tried.” ...原创 2020-04-29 13:22:58 · 960 阅读 · 0 评论 -
走进面向“对象”编程的理想国(一)——深入理解Python中的一切皆对象
来自程序员的调侃天天跟我们这些苦逼的程序猿(媛)们喊着:“要面向对象编程”,你倒是给我新建一个对象嘛。你看看,都没有对象,我怎么面向对象编程嘛。今天,我们就来走进面向对象编程的理想国(一)——深入理解一下Python中的面向对象编程(Object-Oriented Programming, OOP)。——— 从一首歌说起 ———“日子一天一天过 我们会慢慢长大,我不管你懂不懂我在唱什么…...原创 2020-04-28 09:22:27 · 673 阅读 · 0 评论 -
深入理解Python内存管理与垃圾回收,再也不怕问了(二)
Python垃圾回收机制来看一下Python中的垃圾回收技术:引用计数为主标记清除和分代回收为辅原创 2020-04-28 01:26:27 · 372 阅读 · 0 评论 -
深入理解Python内存管理与垃圾回收,再也不怕问了(一)
面试官:听说你学Python?那你给我讲讲Python如何进行内存管理?我:???内存管理不太清楚额。。。面试官:那你知道Python垃圾回收吗?我:(尴尬一下后,还好我看到过相关博客)Python垃圾回收引用计数为主、标记清除和分代回收为主。面试官:那你仔细讲讲这三种垃圾回收技术?我:卒。。。原创 2020-04-27 23:42:55 · 665 阅读 · 1 评论 -
python中yield的用法详解——最简单,最清晰的解释
首先我要吐槽一下,看程序的过程中遇见了yield这个关键字,然后百度的时候,发现没有一个能简单的让我懂的,讲起来真TM的都是头头是道,什么参数,什么传递的,还口口声声说自己的教程是最简单的,最浅显易懂的,我就想问没有有考虑过读者的感受。接下来是正题:首先,如果你还没有对yield有个初步分认识,那么你先把...转载 2020-04-26 13:10:20 · 200 阅读 · 0 评论 -
正确创建Python二维数组
创建一个方便正确的Python二维数组原创 2020-04-25 20:58:44 · 816 阅读 · 0 评论 -
不是那个Python列表,是Python数组 —— Arrays(你没见过的全新版本)
或许我们学Python,只听过列表(list)、元组(tuple)、集合(set)、字典(dict)那个流行在Java、C++和C中常见的那个“狠人”——数组去哪了呢?原创 2020-04-25 15:22:10 · 1036 阅读 · 0 评论 -
面试Python屡屡受挫,我开始反思学Python到底学什么
前言:好像是自2018年Python火起来之后,“人生苦短,我用Python”——这句口号也慢慢成为了我跟朋友调侃自己学Python的原因。步入了Python这个大坑后,买了很多的书,也学习了一些的Python视频,可是每次都是很没出息的一学就懂,学完就忘,从没好好的总结过。于是,到了今年2020的3、4月求职季(不知是不是真正的互联网寒冬来了),反正我是频频受挫,的确也是一个狠狠的打击。...原创 2020-04-24 13:53:24 · 414 阅读 · 0 评论 -
Python中好用又高效的Collections 模块
Collections 模块本文将简单介绍一个Python模块Collections。这个模块实现了一些很好用的数据结构,可以帮助我们解决不同的实际问题。原创 2020-04-23 23:58:35 · 437 阅读 · 0 评论 -
Python 实现Socket编程
Socket编程是网络编程的重要组成部分,异步IO和协程的前提调节。整个计算机网络都是由协议组成。七层网络模型——OSI标准All People Seem To Need Data Processing记忆解释AllApplicationPeoplePresentationSeemSessionToTransportNeedNetwor...原创 2020-04-22 21:43:53 · 683 阅读 · 1 评论 -
什么是计算机网络?为什么需要网络通信?如何进行网络编程?
本篇文章将从 What(是什么)、Why(为什么)、How(怎么做)?三个部分简单入门网络通信。计算机网络是什么?计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。简单来说,网络就是一种辅助双方甚至更多方能连接在一起的工具(也就是系统)。为什么需要网络通...原创 2020-04-21 12:29:18 · 987 阅读 · 0 评论 -
什么是Python全局解释器锁(GIL)?
简而言之,Python全局解释器锁或GIL是一种互斥锁(或锁),仅允许一个线程持有Python解释器的控制权。这意味着在任何时间点只有一个线程可以处于执行状态。对于执行单线程程序的开发人员而言,GIL的影响并不明显,但它可能是CPU绑定和多线程代码的性能瓶颈。由于即使在具有多个CPU内核的多线程体系结构中,GIL一次一次只允许执行一个线程,因此GIL被誉为Python的“臭名昭著”功能。在本...翻译 2020-04-15 13:54:52 · 397 阅读 · 0 评论 -
学习Python一年,这次终于弄懂了浅拷贝和深拷贝
官方文档:copy主题源代码: Lib/copy.py话说,网上已经有很多关于Python浅拷贝和深拷贝的文章了,你还写?当别人一提起Python中的复制操作,你会不会立马站起来说:“我会”,于是就有了如下操作:import copy x = copy.copy(y) # 浅拷贝我会了 x = copy.deepcopy(y) # 深拷贝我来了从引用vs.拷贝...原创 2020-04-06 14:25:52 · 565 阅读 · 1 评论 -
一文让你彻底搞懂Python中__str__和__repr__?
__str__和__repr__的异同?字符串的表示形式我们都知道,Python的内置函数repr()能够把对象用字符串的形式表达出来,方便我们辨认。这就是“字符串表示形式”。repr()就是通过__repr__这个特殊方法来得到一个对象的字符串表示形式的。如果没有实现__repr__,当我们在控制台里打印一个向量的实例时,得到的字符串可能会是 <Vector object at 0x1...原创 2020-04-04 22:32:22 · 510 阅读 · 0 评论 -
没看《庆余年》电视剧和小说,我大概知道了这些
——————理科生用技术方法看《庆余年》——————最近电视剧《庆余年》上了几次微博热搜,身边好多朋友也在讨论这部剧。《庆余年》是由张若昀、李沁、陈道明等人主演的古装剧。这部剧开播之前备受瞩目,许多观众看到实力派演员张若昀和老戏骨陈道明同框,下意识都以为这是一部一本正经的正剧,结果并不是。评价也是两级分化:“没有毁小说”,“老戏骨演技高”、“没有理由不关注这部剧,毕竟这曾经是我最当年喜欢...原创 2019-12-26 21:48:37 · 2540 阅读 · 0 评论 -
Django入门:第十章、静态文件设置
Django入门:第十章:静态文件设置静态文件是指 CSS,JavaScript,字体,图片或者是用来组成用户界面的任何其他资源。实际上,Django 本身是不负责处理这些文件的,但是为了让我们的开发过程更轻松,Django 提供了一些功能来帮助我们管理静态文件。这些功能可在 INSTALLED_APPS 的 django.contrib.staticfiles 应用程序中找到(译者:Djan...原创 2019-11-25 21:58:13 · 384 阅读 · 1 评论 -
Django入门:第九章、查看博客文章
Django入门:第九章、查看博客文章回顾上一章中,我们成功的把博客标题显示出来,那么如何才能查看文章内容,从功能上来说,点击文章标题后呈现其详细内容。因此,文章标题需要做一个超链接,对象就是文章详情页。修改home.htmltemplates/home.html<!DOCTYPE html><html> <head> &l...原创 2019-11-11 22:36:53 · 461 阅读 · 0 评论 -
Django入门:第八章、模板引擎设置
第八章、模板引擎设置回顾要显示文章标题,就要把标题从数据库中先读取出来。我们在创建BlogArticles模型时,有一个专门的title字段存储文章标题,那么怎么读取到它呢?通过前面学习笔记,一种是通过SQL语句进行查询 – select语句另一种就是通过Django自带的API进行读取,这个功能强大的API还可以创建、获取、修改和删除对象显示文章标题在manage.py所在的目...原创 2019-11-10 15:37:27 · 531 阅读 · 0 评论 -
Python代码自动提取Win10内置的锁屏壁纸
文章目录前言网上现有的方法Python 脚本自动提取环境代码如何操作运行结果前言自从用了Win10,当开机的时候时不时会被惊艳到,有些推荐的背景图片真的很好看,比如下面这种:如果图片侵犯您的版权,请联系作者删除网上现有的方法然后就开始在网上找方法,怎么下载这些图片。然后的确有方法,就是去到一个神不知鬼不觉的文件目录:C:\Users\用户名\AppData\Local\Packa...原创 2019-11-09 14:42:50 · 670 阅读 · 0 评论 -
Django入门笔记汇总博客
Django笔记目录Django入门:第一章、Django是啥Django入门:第二章、Django安装[Django入门:第三章、Hello World](https://blog.csdn.net/yuzhou_1shu/article/details/102458012)Django入门:第一章、Django是啥Django入门:第二章、Django安装Django入门:第三章、Hel...原创 2019-11-09 10:10:02 · 503 阅读 · 0 评论 -
Django入门:第七章、利用超级管理员发布博客文章
发布博客文章回顾在上一章中,我们创建了一个超级管理员用户原创 2019-11-09 09:58:16 · 462 阅读 · 0 评论 -
Django入门:第六章、模型操作
模型的操作回顾上一章中我们建立了一个博客文章的模型,然后通过数据迁移建立我们对应中的数据库表,这一章我们接着说模型的操作,这一章的小部分内容可能需要大家对数据库操作有一点熟悉。相信大家都是抱着学习Django的目的来看这一套入门笔记,我就不敢再各位数据库大佬们面前班门弄斧了,直接进入本章学习了。SQLite的启动对数据库的操作可以利用GUI工具,也可以通过命令行sqlite3 db.sql...原创 2019-11-08 17:13:53 · 479 阅读 · 0 评论 -
Django入门:第五章、模型建立与迁移
模型操作回顾上一章中,我们介绍了模型层的基本结构和基本字段。这一章,到了该动手的时候了,我们将创建一个自己写的数据模型类,那么我们写啥呢?别忘了,在介绍Django特点的时候,我们知道Django适合做内容,所以基于此特点,我们编写一个博客岂不乐哉。毕竟博客中最需要的就是文章嘛,好,闲话少叙,我们开始。模型的操作我们要建立一个博客系统,首先先在manage.py所在目录下,用命令 ‘’’p...原创 2019-11-07 20:41:35 · 390 阅读 · 0 评论