![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python从零出发
文章平均质量分 96
全栈若城
曾就职容猫,四维等大厂,涉猎大前端,python, 鸿蒙等领域技术。阿里云, CSDN技术社区专家博主,CSDN博客专家Top100, 热衷技术分享
展开
-
【从零学习python 】92.使用Python的requests库发送HTTP请求和处理响应
本文介绍了如何使用Python的requests库发送HTTP请求,并处理返回的响应。通过示例代码演示了两种URL参数传递方式,包括使用字典传递参数和在URL中直接拼接参数。此外,文章还展示了如何获取响应的头部信息、二进制数据、字符数据和JSON数据,并解释了各种数据类型的用途和获取方式。原创 2023-08-25 09:11:56 · 1892 阅读 · 29 评论 -
【从零学习python 】91. 使用装饰器和字典管理请求路径的简洁Web应用
本文介绍了如何使用装饰器和字典来管理请求路径和相应的处理函数,以构建一个简洁的Web应用。通过定义装饰器函数route,将请求路径与处理函数进行绑定,并将其存储在全局字典变量中。当用户发送请求时,根据请求路径从字典中获取对应的处理函数,并执行相应的操作。展示了如何定义路由、处理函数及启动服务器的示例代码,并详细解释了每个部分的功能。原创 2023-08-25 09:08:23 · 869 阅读 · 1 评论 -
【从零学习python 】93.使用字典管理请求路径
本文介绍了如何使用字典对象来管理请求路径和处理函数之间的对应关系,以实现更简洁的代码结构和路由功能。通过在urls.py文件中定义一个字典对象,将请求路径与对应的处理函数进行映射,可以避免繁琐的if...elif语句,并实现灵活的请求处理。同时,文章还提供了一个示例代码server.py,展示了如何根据请求路径从字典中获取对应的处理函数,并进行相应的处理。原创 2023-08-25 09:04:05 · 928 阅读 · 0 评论 -
【从零学习python 】89. 使用WSGI搭建简单高效的Web服务器
本文介绍了如何使用WSGI(Web Server Gateway Interface)搭建一个简单而高效的Web服务器。通过创建hello.py文件实现WSGI应用的处理函数,并在server.py文件中启动WSGI服务器并加载application函数,可以快速搭建起一个基于WSGI的Web应用。文章还介绍了WSGI服务器的工作原理和使用方法,以及如何监听HTTP请求和发送HTTP响应。通过使用WSGI,可以实现简化的Web开发过程。原创 2023-08-25 08:56:51 · 925 阅读 · 0 评论 -
【从零学习python 】88. WSGI接口详解:实现简单高效的Web开发
本文介绍了WSGI(Web Server Gateway Interface)接口的定义和使用。WSGI是一种简单而强大的接口标准,通过实现一个函数即可响应HTTP请求。文章详细阐述了WSGI接口的结构和使用方法,并介绍了如何从environ字典对象中获取HTTP请求信息、构建HTML内容并发送HTTP响应Header。此外,还介绍了WSGI服务器的选择和使用,其中提到了Python内置的wsgiref模块作为参考实现。原创 2023-08-25 08:56:37 · 818 阅读 · 0 评论 -
【从零学习python 】87. 手动搭建HTTP服务器的Python实现及多线程并发处理
本文介绍了使用Python手动搭建HTTP服务器的方法。通过导入必要的模块,定义WSGIServer类来处理客户端请求,并通过多线程并发处理提高服务器性能。文章详细介绍了每段代码的功能和实现原理,包括处理请求、打开文件、发送响应等过程。最后,提供了主程序入口,展示了如何实例化WSGIServer类并启动服务器。通过阅读本文,读者可以了解到手动搭建HTTP服务器的基本步骤和关键技术。原创 2023-08-25 08:56:26 · 932 阅读 · 0 评论 -
【从零学习python 】86. 深入了解HTTP协议及其在浏览器和服务器通信中的作用
本文介绍了HTTP协议及其在浏览器和服务器之间传输数据时的工作原理。通过分析浏览器发送HTTP请求和服务器返回HTTP响应的过程,我们了解到HTTP请求的格式和步骤,包括请求方法、路径、域名和相关的Header信息。同时,我们也探讨了HTTP响应的格式,包括响应行、响应头和响应体。HTTP协议简单而灵活,具有扩展性,可以实现网页加载、资源传输等功能。最后,我们总结了HTTP协议的特点和作用,强调了它在Web开发中的重要性。原创 2023-08-25 08:56:06 · 305 阅读 · 0 评论 -
【从零学习python 】85.Python进程池的并行计算技术应用
本文介绍了在Python中使用进程池进行并行计算的技术,通过multiprocessing模块提供的Pool方法,可以灵活地创建和管理多个子进程,大大提高计算效率。文章首先介绍了进程池的基本概念及使用方法,然后通过示例代码演示了如何利用进程池实现并行计算。在示例中,通过创建一个最大进程数为3的进程池,实现了10个任务的并行处理。最后,还介绍了进程池中的Queue用于进程间通信的方法。通过使用Manager中的Queue,可以在进程池中实现进程之间的消息传递。本文全面介绍了Python进程池的使用技巧,对于需原创 2023-08-24 10:27:45 · 1662 阅读 · 4 评论 -
【从零学习python 】84.深入理解线程和进程
本文详细介绍了线程和进程的概念和区别。进程是系统进行资源分配和调度的独立单位,而线程是进程中的实体,是CPU调度和分派的基本单位。线程享有共享内存的优势,提高了程序的运行效率。文章还介绍了进程间通信的方法,以及如何使用Queue实现进程共享。通过创建一个父进程和两个子进程的示例,展示了消息队列在进程间通信中的应用。原创 2023-08-24 10:23:27 · 1967 阅读 · 0 评论 -
【从零学习python 】83. Python多进程编程与进程池的使用
本文介绍了Python中多进程编程的基本概念和常用方法,例如使用multiprocessing模块创建进程、启动子进程、判断进程是否存活等。同时还介绍了如何使用进程池来批量创建子进程,并提供了使用进程池执行任务、获取执行结果的示例代码。此外,还讨论了进程间共享全局变量的问题。原创 2023-08-24 10:16:56 · 2017 阅读 · 0 评论 -
【从零学习python 】82. 基于多线程的聊天程序实现
基于多线程的聊天程序实现了同时发送和接收消息的功能。用户可以通过输入目标IP地址和端口号来进行聊天,并可以实时看到对方发送的消息。该程序通过使用socket库进行网络通信,使用线程来处理发送和接收消息的任务。发送消息的线程通过用户输入获取聊天内容,并使用UDP协议将消息发送到指定的IP地址和端口号。接收消息的线程不断监听端口,一旦接收到消息就解码并打印出来。同时,接收到的消息也会被保存到本地的历史记录文件中。该聊天程序具有简单、高效和实时的特点。原创 2023-08-24 10:03:20 · 2009 阅读 · 0 评论 -
【从零学习python 】81.Python多线程通信与队列的应用
本文介绍了在Python中使用多线程和队列实现线程间通信的方法。通过使用队列(Queue),我们可以在主线程和子线程之间传递数据,实现数据的共享和同步。通过一个生产者线程将数据放入队列中,以及多个消费者线程从队列中取出数据的过程,展示了线程间通信的基本原理和应用方式。原创 2023-08-24 09:56:09 · 2085 阅读 · 0 评论 -
【从零学习python 】80.线程访问全局变量与线程安全问题
本篇文章探讨了线程访问全局变量及其可能引发的安全问题。通过示例代码演示了全局变量的访问和修改,并说明了线程非安全可能导致的数据混乱情况。同时介绍了线程安全问题,以卖票场景为例,展示了多个线程对共享资源进行操作时可能出现的问题。讨论了同步和互斥锁的概念,并给出了使用互斥锁解决卖票问题的示例代码。原创 2023-08-24 09:51:43 · 2562 阅读 · 0 评论 -
【从零学习python 】79. 线程访问全局变量与线程安全问题
本篇文章探讨了线程访问全局变量及其可能引发的安全问题。在多线程编程中,全局变量可以方便地在不同线程之间共享数据,但同时也带来了线程非安全的风险。通过示例代码演示了全局变量的访问和修改,并说明了线程非安全可能导致的数据混乱情况。此外,还介绍了线程安全问题,以一个卖票的场景为例,展示了多个线程对共享资源进行操作时可能出现的问题。原创 2023-08-24 09:48:13 · 2018 阅读 · 0 评论 -
【从零学习python 】78. 文件下载案例
本文介绍了一个简单的文件下载案例,通过TCP服务器和TCP客户端实现文件的传输。服务器端负责接收客户端发送的文件名,并将对应文件的内容发送给客户端。客户端输入服务器的IP地址和端口号,以及需要下载的文件名,然后向服务器发送下载请求,并接收并保存文件内容。该案例使用Python的socket库进行网络通信。原创 2023-08-24 09:32:32 · 1922 阅读 · 0 评论 -
【从零学习python 】77. TCP服务端编程及注意事项
本文介绍了如何使用Python编写TCP服务端程序,并详细讲解了创建套接字、绑定、监听、接收和发送数据等步骤。此外,还提供了TCP服务器编程中需要注意的几个关键点,例如绑定与监听、连接与断开、客户端标识等。通过学习本文,您将对TCP服务端编程有更深入的理解。原创 2023-08-24 09:32:11 · 1942 阅读 · 0 评论 -
【从零学习python 】76.服务器与客户端:网络通信的关键组成部分
本文介绍了服务器和客户端在网络通信中的作用和架构。服务器是提供计算服务的设备,需要具备承担服务和保障服务的能力。客户端是为用户提供本地服务的程序,与服务器相对应。客户端服务器架构采用主从式架构,将客户端与服务器分开,客户端软件可以向服务器发出请求。另外,还介绍了TCP客户端的简单性,相比TCP服务端而言,客户端的流程较少,类似于拨打电话。示例代码展示了TCP客户端的基本操作流程。原创 2023-08-24 09:31:43 · 1942 阅读 · 0 评论 -
【从零学习python 】75. TCP协议:可靠的面向连接的传输层通信协议
TCP协议是一种可靠的、面向连接的传输层通信协议。它通过建立连接、数据传送和终止连接三个步骤实现通信。TCP具有面向连接、可靠传输、流量控制和阻塞管理等特点,与UDP相比具有更多的功能和保证数据可靠性的机制。本文介绍了TCP的工作原理和特点,并与UDP进行了对比分析。适用于网络传输场景,提供了更稳定和可靠的通信方式。原创 2023-08-23 10:07:03 · 3916 阅读 · 2 评论 -
【从零学习python 】74. UDP网络程序:端口问题与绑定信息详解
本文详细介绍了UDP网络程序中常见的端口问题以及如何进行绑定信息。在UDP网络程序中,端口号可能会变化,每次重新运行程序都会导致端口号随机分配。然而,如果需要创建一个服务器端程序,就必须进行端口绑定,确保固定的端口号用于接收数据。文章提供了UDP绑定示例代码,并总结了UDP网络程序可以选择是否绑定以及绑定后的端口号特性。原创 2023-08-23 10:02:55 · 4681 阅读 · 0 评论 -
【从零学习python 】73. UDP网络程序-发送数据
本文介绍了基于UDP的网络程序的发送数据流程。首先创建一个UDP套接字连接,然后获取用户输入的内容,并准备接收方的地址和端口号。接下来将用户的输入内容进行编码,并通过UDP套接字发送到指定地址和端口。之后接收传递过来的消息,并解析接收到的数据元组,其中包括接收到的内容和发送方的地址和端口号。最后关闭UDP套接字连接。通过阅读本文,可以了解如何使用UDP进行简单的数据发送和接收。原创 2023-08-23 09:58:53 · 3574 阅读 · 0 评论 -
【从零学习python 】72. 深入理解Socket通信及创建套接字的方法
本文介绍了Socket通信的基本原理和创建套接字的方法。首先讲解了不同电脑上进程之间如何通信的问题,包括唯一标识进程的方法以及利用IP地址、协议和端口来标识网络中的进程。然后详细介绍了Socket的概念,指出它是实现进程间通信的一种方式,并且可用于不同主机间的通信。接着,给出了在Python中使用socket模块创建套接字的示例代码,并解释了Address Family和Type参数的作用。最后,总结了套接字的使用流程,类比文件的使用流程进行说明。通过本文的阅读,读者可以深入理解Socket通信原理,并学会原创 2023-08-23 09:55:10 · 3290 阅读 · 0 评论 -
【从零学习python 】71. 网络端口及其作用
本文介绍了网络端口及其作用。网络端口是程序进行网络数据收发的必经之路,Linux系统中有65536个端口。通过端口号来标记端口,端口号范围为0到65535,分为知名端口和动态端口。知名端口号是常用功能使用的号码,范围为0到1023,需要root权限。动态端口号范围为1024到65535,由系统动态分配。端口号与IP地址配合使用,区分不同的网络服务。文章总结了网络端口的重要性和应用。原创 2023-08-23 09:52:34 · 3497 阅读 · 0 评论 -
【从零学习python 】70.网络通信方式及其应用:从直接通信到路由器连接多个网络
本文介绍了网络通信的几种常见方式和应用。首先,直接通信通过网线连接的两台电脑可以直接进行通信,但需要设置IP地址和网络掩码。其次,集线器可以将多台电脑连接在一起,但以广播方式发送数据可能导致网络拥堵。然后,交换机克服了集线器的缺点,能够以单播和广播的方式发送数据。最后,路由器连接多个不同的网段,实现网络间的数据收发。文章总结了MAC地址、IP地址、网络掩码、默认网关等网络通信中常用的概念,还介绍了DNS和HTTP服务器的作用。原创 2023-08-23 09:49:53 · 3504 阅读 · 0 评论 -
【从零学习python 】69. 网络通信及IP地址分类解析
本文介绍了网络通信的概念以及IP地址的分类,并详细解释了A类、B类、C类地址的范围和子网掩码。同时还提到了D类和E类地址的用途,以及私有地址的范围。文章总结了IP地址的重要性和在网络编程中的应用。原创 2023-08-23 09:44:40 · 3788 阅读 · 0 评论 -
【从零学习python 】68. Python正则表达式中的贪婪和非贪婪模式
本文介绍了Python正则表达式中的贪婪和非贪婪模式。默认情况下,Python中的数量词是贪婪的,即尽可能匹配尽可能多的字符。非贪婪模式则相反,尽可能匹配尽可能少的字符。文章详细解释了如何使用?来将贪婪模式转变为非贪婪模式,并通过示例代码演示了贪婪模式和非贪婪模式的区别和应用场景。此外,还讨论了正则表达式模式中通配字的匹配顺序,以及如何提取特定的字符串内容。最后,给出了一个练习题,并提供了参考答案。原创 2023-08-23 09:32:29 · 3791 阅读 · 0 评论 -
【从零学习python 】67.Python中的re模块:正则替换与高级匹配技术
Python的re模块提供了强大的正则表达式功能,其中re.sub函数可以用于字符串中的模式替换。本文介绍了re.sub的语法和常用参数,以及示例代码演示了如何通过re.sub删除注释、移除非数字内容,并通过传入函数实现高级替换。此外,还介绍了使用命名捕获组进行更精确的匹配。掌握这些高级匹配技术,能够有效地处理文本数据,提升开发效率。本文还提供了5个技术标签,涵盖正则表达式、匹配技术、Python编程等多个方面。原创 2023-08-23 09:29:31 · 3423 阅读 · 0 评论 -
【从零学习python 】66.深入了解正则表达式:模式匹配与文本处理的利器
正则表达式是一种强大而灵活的工具,用于在文本中进行模式匹配和处理。本文介绍了正则表达式的基本概念和常用元字符,包括字符类、定位符、重复和特殊序列等。通过学习正则表达式,你可以轻松地从字符串中提取信息、验证数据的格式、替换文本或者过滤数据。正则表达式在编程、文档处理、日志分析等领域有着广泛的应用。因此,掌握正则表达式对于开发人员和数据分析师来说是非常重要的。如果你想提升文本处理的效率和灵活性,那么不妨深入了解正则表达式吧!原创 2023-08-23 09:25:28 · 3416 阅读 · 0 评论 -
【从零学习python 】65. Python正则表达式修饰符及其应用详解
本文介绍了Python正则表达式的修饰符,包括re.I(大小写不敏感)、re.M(多行匹配)以及re.S(包含换行字符)。通过示例代码演示了修饰符的使用方式,如不区分大小写的匹配、多行结尾的匹配等。同时,本文还强调了修饰符在优化字符串匹配、提高可读性和维护性方面的重要性。最后,为读者提供了5个技术标签,涉及Python、正则表达式、字符串匹配、修饰符、代码优化。原创 2023-08-22 16:01:30 · 4906 阅读 · 0 评论 -
【从零学习python 】64. Python正则表达式中re.compile方法的使用详解
本文详细介绍了Python正则表达式中的re.compile方法,该方法可以生成一个正则表达式对象,并用于实现字符串匹配操作。文章通过示例代码演示了re.compile方法的使用方式,并说明了其在提高匹配效率、代码可读性和维护性方面的优势。读者通过学习和理解re.compile方法的功能和用法,能够更加灵活地应用正则表达式进行字符串匹配。原创 2023-08-22 15:57:32 · 5551 阅读 · 0 评论 -
【从零学习python 】63.正则表达式中的re.Match类及其属性和方法介绍
本文介绍了Python正则表达式中的re.Match类及其常用属性和方法。re.Match是通过调用re.match方法、re.search方法,或对re.finditer方法的结果进行迭代而获得的对象。文章详细说明了re.Match类的属性和方法的用途和功能,并给出了示例代码加以说明。原创 2023-08-22 15:53:49 · 4885 阅读 · 0 评论 -
【从零学习python 】62. Python正则表达式:强大的字符串匹配工具
正则表达式是一种强大的字符串处理工具,可以通过定义特定的模式来匹配、查找和替换文本。Python中的re模块提供了对正则表达式的支持,包括match、search、findall和finditer等方法,它们可以灵活地实现字符串的匹配和处理。本文详细介绍了Python中正则表达式的基本语法和常用方法,并举例说明了如何使用这些方法进行字符串匹配和替换操作。同时还介绍了原生字符串的概念,使得正则表达式的编写更加简单直观。此外,文章还讨论了re.match和re.search的区别,以及findall和f原创 2023-08-22 15:48:31 · 4584 阅读 · 0 评论 -
【从零学习python 】61.Python中的property属性详解和应用示例
Python中的property属性是一种特殊的属性,可以对应于某个方法,通过一系列的逻辑计算最终返回计算结果。本文介绍了property属性的定义和调用方式,以及两种实现方式:装饰器和类属性。装饰器方式在经典类和新式类中有所不同,而类属性方式适用于所有类。通过示例展示了property属性在分页功能中的应用,以及获取商品价格、修改原价和删除原价的案例。通过使用property属性,可以简化获取数据的流程,提高代码的可读性和灵活性。原创 2023-08-22 15:38:42 · 4805 阅读 · 1 评论 -
【从零学习python 】60.探索生成器:迭代的灵活利器
生成器是一种特殊的迭代器,能够按照特定规律生成数据。本文介绍了两种创建生成器的方法,并详细比较了生成器和迭代器的区别。同时,探讨了利用生成器实现复杂算法的方法,以及使用send()函数唤醒生成器的技巧。生成器的灵活性使其在处理大量数据或需要延迟生成数据的场景中表现出色。原创 2023-08-22 15:13:05 · 4433 阅读 · 0 评论 -
【从零学习python 】59.迭代器:优化数据遍历的高效工具
迭代器是一种用于访问集合元素的工具,通过记住遍历位置的方式,逐个返回数据,避免一次性加载整个数据集合。本文介绍了可迭代对象和迭代器的概念及应用场景,通过代码示例详细解释了它们的实现和使用方法。迭代器不仅方便处理大型数据集和按需生成数据,还在数学计算、文件处理等领域具有广泛应用。同时,附带介绍了如何判断一个对象是否可迭代以及如何判断一个对象是否是迭代器。通过理解迭代器的原理和灵活运用,可以提高代码的效率和资源利用率。原创 2023-08-22 15:07:04 · 4425 阅读 · 0 评论 -
【从零学习python 】58.Python中的自定义异常及引发异常的方法
本文介绍了在Python中如何自定义异常,并通过raise语句来引发异常。通过创建一个自定义的异常类,并继承Error或Exception类,可以实现对特定情况下的异常处理。文章给出了一个示例,展示了如何利用自定义异常类来判断输入字符串长度是否符合要求,并引发相应的异常。同时,还介绍了异常类的初始化方法和字符串表示方法。掌握自定义异常的方法,可以使得程序对于特定情况下的错误更加灵活地进行处理。原创 2023-08-21 10:24:48 · 2137 阅读 · 0 评论 -
【从零学习python 】57.Python中使用with关键字正确关闭资源
本文介绍了在Python中正确关闭资源的方法,重点介绍了使用with关键字的优雅方式。通过使用try/finally和with语句,可以确保文件、数据库连接等资源在不再使用时被及时关闭,避免出现系统资源不足的问题。此外,文章还介绍了with语句的原理和上下文管理器的使用,帮助读者更好地理解和应用这一常用技术。原创 2023-08-21 10:19:47 · 2079 阅读 · 2 评论 -
【从零学习python 】56. 异常处理在程序设计中的重要性与应用
异常处理是程序设计中不可或缺的一部分。本文介绍了异常的概念以及在文件读取、代码执行过程中可能出现的异常情况。通过使用try...except语句,我们可以对异常进行捕获和处理,提高程序的健壮性。同时,文章还介绍了try...else和try...finally语句的应用场景和作用。异常处理的重要性在于保证程序的稳定性和可靠性,有效应对可能的错误和异常情况。原创 2023-08-21 10:15:08 · 2317 阅读 · 0 评论 -
【从零学习python 】55.Python中的序列化和反序列化,JSON与pickle模块的应用
本文介绍了在Python中使用JSON和pickle模块进行序列化和反序列化的方法。JSON是一种轻量级的数据交换格式,可以将对象转换为字符串,并实现对象的序列化和反序列化操作。通过json.dumps()和json.loads()方法,可以将对象转换为JSON字符串,或从JSON字符串中恢复对象。同时,JSON还提供了dump()和load()方法,可以将对象直接写入文件或从文件中读取。与JSON不同,pickle模块将对象转换为二进制格式进行序列化。pickle.dump()和pickle.load原创 2023-08-21 09:55:45 · 2207 阅读 · 0 评论 -
【从零学习python 】54. 内存中写入数据
本文详细介绍了在Python中使用StringIO和BytesIO类将数据写入内存的方法。通过创建相应的对象并使用write方法,可以将字符串数据或二进制数据写入到内存中。对于字符串数据,可以使用StringIO类;对于二进制数据,可以使用BytesIO类,并在写入时传入相应的编码。本文还说明了如何从内存中读取数据,并提供了相应的代码示例。原创 2023-08-21 09:47:41 · 2614 阅读 · 0 评论 -
【从零学习python 】53. CSV文件和Python的CSV模块
本文详细介绍了CSV文件的特点和结构,并解释了如何使用Python的csv模块进行CSV文件的读写操作。对于写入CSV文件,使用csv.writer对象的writerow方法逐行写入数据;也可以使用writerows方法一次性写入多行数据。对于读取CSV文件,使用csv.reader对象遍历每一行数据并进行处理。原创 2023-08-21 09:42:50 · 1972 阅读 · 0 评论