
PYTHON基础知识(持续更新)
PYTHON相关知识,有事可联系13960699696
愚公搬代码
《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。
《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主,2024年华为云十佳博主等。
《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
展开
-
(更新时间)2021年3月31日 python基础知识(re模块的使用)
一:re模块介绍1. re模块的介绍在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个 re 模块# 导入re模块import re# 使用match方法进行匹配操作result = re.match(正则表达式,要匹配的字符串)# 如果上一步匹配到数据的话,可以使用group方法来提取数据result.group()2. re模块的使用import re# 使用match方法进行匹配操作result = re.match("itcast","itcas原创 2021-03-30 14:54:14 · 51001 阅读 · 0 评论 -
(更新时间)2021年3月30日 python基础知识(生成器)
1. 生成器的介绍根据程序员制定的规则循环生成数据,当条件不成立时则生成数据结束。数据不是一次性全部生成出来,而是使用一个,再生成一个,可以节约大量的内存。2. 创建生成器的方式生成器推导式yield 关键字生成器推导式:与列表推导式类似,只不过生成器推导式使用小括号# 创建生成器my_generator = (i * 2 for i in range(5))print(my_generator)# next获取生成器下一个值# value = next(my_generat原创 2021-03-30 14:43:39 · 50259 阅读 · 0 评论 -
(更新时间)2021年3月29日 python基础知识(with语句和上下文管理器)
1. with语句的使用with 语句的示例代码:# 1、以写的方式打开文件with open("1.txt", "w") as f: # 2、读取文件内容 f.write("hello world")with 语句的这种写法,既简单又安全,并且 with 语句执行完成以后自动调用关闭文件操作,即使出现异常也会自动调用关闭文件操作。2. 上下文管理器自定义上下文管理器类,模拟文件操作:class File(object): # 初始化方法 def __ini原创 2021-03-29 10:21:58 · 50902 阅读 · 0 评论 -
(更新时间)2021年3月29日 python基础知识(property属性)
1. property属性的介绍property属性就是负责把一个方法当做属性进行使用,这样做可以简化代码使用。定义property属性有两种方式装饰器方式类属性方式2. 装饰器方式class Person(object): def __init__(self): self.__age = 0 # 装饰器方式的property, 把age方法当做属性使用, 表示当获取属性时会执行下面修饰的方法 @property def age(self)原创 2021-03-29 10:17:42 · 50943 阅读 · 3 评论 -
(更新时间)2021年3月28日 python基础知识(搭建自己的框架)
1. 框架职责介绍接收web服务器的动态资源请求,给web服务器提供处理动态资源请求的服务。2. 动态资源判断根据请求资源路径的后缀名进行判断如果请求资源路径的后缀名是.html则是动态资源请求, 让web框架程序进行处理。否则是静态资源请求,让web服务器程序进行处理。web服务器程序(web.py)代码:import socketimport threadingimport sysimport framework# 定义web服务器类class HttpWebServer原创 2021-03-28 22:33:09 · 50995 阅读 · 1 评论 -
(更新时间)2021年3月28日 python基础知识(装饰器)
一.装饰器的使用1. 装饰器的使用场景函数执行时间的统计输出日志信息2. 装饰器实现已有函数执行时间的统计import time# 装饰器函数def get_time(func): def inner(): begin = time.time() func() end = time.time() print("函数执行花费%f" % (end-begin)) return inner@get_time原创 2021-03-28 18:59:47 · 50914 阅读 · 0 评论 -
(更新时间)2021年3月28日 python基础知识(闭包)
一 闭包的概念1. 闭包的介绍闭包的定义:在函数嵌套的前提下,内部函数使用了外部函数的变量,并且外部函数返回了内部函数,我们把这个使用外部函数变量的内部函数称为闭包。2. 闭包的构成条件通过闭包的定义,我们可以得知闭包的形成条件:在函数嵌套(函数里面再定义函数)的前提下内部函数使用了外部函数的变量(还包括外部函数的参数)外部函数返回了内部函数3. 简单闭包的示例代码# 定义一个外部函数def func_out(num1): # 定义一个内部函数 def func_原创 2021-03-28 17:06:29 · 51097 阅读 · 2 评论 -
(更新时间)2021年3月28日 python基础知识(深拷贝和浅拷贝)
1. 浅拷贝copy函数是浅拷贝,只对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象。不可变类型的浅拷贝示例代码:import copy # 使用浅拷贝需要导入copy模块# 不可变类型有: 数字、字符串、元组a1 = 123123b1 = copy.copy(a1) # 使用copy模块里的copy()函数就是浅拷贝了# 查看内存地址print(id(a1))print(id(b1))print("-" * 10)a2 = "a原创 2021-03-28 16:44:34 · 51105 阅读 · 1 评论 -
(更新时间)2021年3月28日 python基础知识(PyMySQL的使用)
1. 思考如何实现将100000条数据插入到MySQL数据库?答案:如果使用之前学习的MySQL客户端来完成这个操作,那么这个工作量无疑是巨大的,我们可以通过使用程序代码的方式去连接MySQL数据库,然后对MySQL数据库进行增删改查的方式,实现10000条数据的插入,像这样使用代码的方式操作数据库就称为数据库编程。2. Python程序操作MySQL数据库安装pymysql第三方包:sudo pip3 install pymysql说明:安装命令使用 sudo pip3 install原创 2021-03-28 15:08:51 · 51033 阅读 · 0 评论 -
(更新时间)2021年3月28日 python基础知识(手写web服务器)
1.手写web服务器import socketimport threading# 定义web服务器类class HttpWebServer(object): def __init__(self): # 创建tcp服务端套接字 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置端口号复用, 程序退出端口立即释放 tcp_serve原创 2021-03-28 13:53:40 · 50997 阅读 · 0 评论 -
(更新时间)2021年3月28日 python基础知识(自带web服务器)
一.搭建Python自带静态Web服务器1. 静态Web服务器是什么?可以为发出请求的浏览器提供静态文档的程序。平时我们浏览百度新闻数据的时候,每天的新闻数据都会发生变化,那访问的这个页面就是动态的,而我们开发的是静态的,页面的数据不会发生变化。2. 如何搭建Python自带的静态Web服务器搭建Python自带的静态Web服务器使用 python3 -m http.server 端口号, 效果图如下:-m选项说明:-m表示运行包里面的模块,执行这个命令的时候,需要进入你自己指定静态文件的目原创 2021-03-28 13:44:41 · 50962 阅读 · 0 评论 -
(更新时间)2021年3月28日 python基础知识(TCP网络应用程序开发)
一:TCP 客户端程序开发1. 开发 TCP 客户端程序开发步骤回顾创建客户端套接字对象和服务端套接字建立连接发送数据接收数据关闭客户端套接字2. socket 类的介绍导入 socket 模块import socket创建客户端 socket 对象socket.socket(AddressFamily, Type)参数说明:AddressFamily 表示IP地址类型, 分为IPv4和IPv6Type 表示传输协议类型方法说明:connect((host, p原创 2021-03-28 11:19:51 · 50935 阅读 · 0 评论 -
(更新时间)2021年3月28日 python基础知识(死锁)
1. 死锁示例import threadingimport time# 创建互斥锁lock = threading.Lock()# 根据下标去取值, 保证同一时刻只能有一个线程去取值def get_value(index): # 上锁 lock.acquire() print(threading.current_thread()) my_list = [3,6,8,1] # 判断下标释放越界 if index >= len(my_li原创 2021-03-28 10:54:47 · 50832 阅读 · 0 评论 -
(更新时间)2021年3月28日 python基础知识(互斥锁)
1.互斥锁的使用import threading# 定义全局变量g_num = 0# 创建全局互斥锁lock = threading.Lock()# 循环一次给全局变量加1def sum_num1(): # 上锁 lock.acquire() for i in range(1000000): global g_num g_num += 1 print("sum1:", g_num) # 释放锁 lock原创 2021-03-28 10:48:34 · 50989 阅读 · 3 评论 -
(更新时间)2021年3月28日 python基础知识(线程的使用)
一. 线程的使用1. 导入线程模块#导入线程模块import threading2. 线程类Thread参数说明Thread([group [, target [, name [, args [, kwargs]]]]])group: 线程组,目前只能使用Nonetarget: 执行的目标任务名args: 以元组的方式给执行任务传参kwargs: 以字典方式给执行任务传参name: 线程名,一般不用设置3. 启动线程启动线程使用start方法4. 多线程完成多任务的代码im原创 2021-03-28 10:41:48 · 50961 阅读 · 2 评论 -
(更新时间)2021年3月28日 python基础知识(进程的使用)
一. 进程的使用1. 导入进程包#导入进程包import multiprocessing2. Process进程类的说明Process([group [, target [, name [, args [, kwargs]]]]])group:指定进程组,目前只能使用Nonetarget:执行的目标任务名name:进程名字args:以元组方式给执行任务传参kwargs:以字典方式给执行任务传参Process创建的实例对象的常用方法:start():启动子进程实例(创建子进程)原创 2021-03-28 10:19:43 · 51159 阅读 · 1 评论 -
(更新时间)2021年3月27日 python基础知识(包的引用)
python中的包1. 引入包1.1 有2个模块功能有些联系1.2 所以将其放到同一个文件夹下1.3 使用import 文件.模块 的方式导入1.4 使用from 文件夹 import 模块 的方式导入1.5 在msg文件夹下创建__init__.py文件1.6 在__init__.py文件中写入1.7 重新使用from 文件夹 import 模块 的方式导入总结:包将有联系的模块组织在一起,即放到同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py 文件原创 2021-03-27 22:22:08 · 50851 阅读 · 1 评论 -
(更新时间)2021年3月27日 python基础知识(模块中的__all__)
1. 没有__all__2. 模块中有__all__总结如果一个文件中有__all__变量,那么也就意味着这个变量中的元素,会被from xxx import*时导入,没有在这个变量中的不会被导入原创 2021-03-27 22:08:14 · 50882 阅读 · 0 评论 -
(更新时间)2021年3月26日 python基础知识(模块制作)
模块制作<1>定义自己的模块在Python中,每个Python文件都可以作为一个模块,模块的名字就是文件的名字。比如有这样一个文件test.py,在test.py中定义了函数addtest.pydef add(a,b): return a+b<2>调用自己定义的模块那么在其他文件中就可以先import test,然后通过test.add(a,b)来调用了,当然也可以通过from test import add来引入main.pyimport testr原创 2021-03-26 10:51:24 · 51064 阅读 · 1 评论 -
(更新时间)2021年3月26日 python基础知识(模块的导入)
模块<1>Python中的模块在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块。说的通俗点:模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块<2>import在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import原创 2021-03-26 10:44:25 · 50908 阅读 · 2 评论 -
(更新时间)2021年3月26日 python基础知识(自定义异常)
抛出自定义的异常你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类下面是一个引发异常的例子:class ShortInputException(Exception): '''自定义的异常类''' def __init__(self, length, atleast): #super().__init__() self.length = length self.atleast原创 2021-03-26 10:33:21 · 50990 阅读 · 1 评论 -
(更新时间)2021年3月26日 python基础知识(异常的传递)
异常的传递1. try嵌套中import timetry: f = open('test.txt') try: while True: content = f.readline() if len(content) == 0: break time.sleep(2) print(content) finally: f.cl原创 2021-03-26 10:31:29 · 50788 阅读 · 1 评论 -
(更新时间)2021年3月25日 python基础知识(异常的捕获)
1.异常的捕获<1>捕获单个异常# 异常: 程序代码在运行过程中遇到的错误, 程序会报错,会终止程序代码的运行.# 异常捕获: 是指在程序代码运行过程中,遇到错误, 不让程序代码终止,让其继续运行, 同时可以给使用者一个提示信息# 并记录这个错误, 便于后期改进"""try: 可能发生异常的代码except 异常的类型: 发生异常执行的代码"""print('其他的代码......')num = input('请输入一个数字:')# ZeroDivisi原创 2021-03-25 19:07:31 · 50792 阅读 · 4 评论 -
(更新时间)2021年3月25日 python基础知识(静态方法和类方法)
1. 类方法是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大部分人都习惯以’cls’作为第一个参数的名字,就最好用’cls’了),能够通过实例对象和类对象去访问。"""实例方法: 类中默认定义的方法,就是实例方法, 第一个参数为self,表示实例对象类方法: 使用 @classmethod 装饰的方法,称为类方法, 第一个参数是cls,代表的是类对象自己什么原创 2021-03-25 18:12:01 · 50879 阅读 · 2 评论 -
(更新时间)2021年3月25日 python基础知识(类属性和实例属性)
1.类属性class People(object): name = 'Tom' # 公有的类属性 __age = 12 # 私有的类属性p = People()print(p.name) # 正确print(People.name) # 正确print(p.__age) # 错误,不能在类外通过实例对象访问私有的类属性print(People.__age) # 错误,不能在类外通过类对象访问私有的类属性2.实例属性(对象属性)class People(obje原创 2021-03-25 18:00:25 · 50843 阅读 · 0 评论 -
(更新时间)2021年3月25日 python基础知识(多态)
1.多态"""在需要使用父类对象的地方,也可以传入子类对象,得到不同的结果 ---- 多态实现步骤:1. 子类继承父类2. 子类重写父类中的同名方法3. 定义一个共同的方法, 参数为父类对象.在方法中调用子类和父类同名的方法"""# 1. 定义DOg类class Dog(object): def __init__(self, name): self.name = name def play(self): print(f'小狗{self.原创 2021-03-25 17:56:25 · 50650 阅读 · 0 评论 -
(更新时间)2021年3月24日 python基础知识(私有属性和私有方法)
私有权限面向对象三大特性:封装、继承、多态封装的意义:将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;对类的属性和方法增加 访问权限控制。私有权限:在属性名和方法名 前面 加上两个下划线 __类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问;类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问;私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用。私有原创 2021-03-24 20:55:04 · 50828 阅读 · 3 评论 -
(更新时间)2021年3月24日 python基础知识(super()的使用)
1.super()的使用class Master(object): def __init__(self): self.kongfu = "古法煎饼果子配方" # 实例变量,属性 def make_cake(self): # 实例方法,方法 print("[古法] 按照 <%s> 制作了一份煎饼果子..." % self.kongfu)# 父类是 Master类class School(Master): def __init_原创 2021-03-24 19:58:57 · 50804 阅读 · 0 评论 -
(更新时间)2021年3月24日 python基础知识(多层继承)
1. 多层继承如果一个类有两个及以上的父类,就把这种继承关系称为多继承.class Master(object): def __init__(self): self.kongfu = "古法煎饼果子配方" def make_cake(self): print("[古法] 按照 <%s> 制作了一份煎饼果子..." % self.kongfu)class School(object): def __init__(self):原创 2021-03-24 19:55:17 · 51070 阅读 · 2 评论 -
(更新时间)2021年3月24日 python基础知识(子类父类同名方法解析)
1.子类重写父类的同名属性和方法class Master(object): def __init__(self): self.kongfu = "古法煎饼果子配方" def make_cake(self): print("[古法] 按照 <%s> 制作了一份煎饼果子..." % self.kongfu)class School(object): def __init__(self): self.kongfu =原创 2021-03-24 19:52:07 · 51289 阅读 · 0 评论 -
(更新时间)2021年3月24日 python基础知识(单继承和多继承)
1.单继承:子类只继承一个父类# 定义一个Master类class Master(object): def __init__(self): # 属性 self.kongfu = "古法煎饼果子配方" # 实例方法 def make_cake(self): print("按照 <%s> 制作了一份煎饼果子..." % self.kongfu)# 定义Prentice类,继承了 Master,则Prentice是子原创 2021-03-24 17:10:04 · 51062 阅读 · 2 评论 -
(更新时间)2021年3月24日 python基础知识(继承的基本概念)
1. 继承的基本语法继承: 描述的类与类之间所属关系.基本语法:class 类B(类A): pass称为类 B 继承类 A特点: B类的对象可以使用 A类的属性和方法优点: 代码复用.重复相同的代码不用多次书写.名词: 类A: 父类 基类 类B: 子类 派生类# 1. 定义是个 动物类 animal类class Animal(object): # 2. 在animal类书写 play方法,输出快乐的玩耍.... def play(self原创 2021-03-24 17:06:09 · 50952 阅读 · 1 评论 -
(更新时间)2021年3月24日 python基础知识(魔法方法)
1.魔法方法在 python 的类中,有一类方法,这类方法以 `两个下划线开头` 和`两个下划线结尾`, 并且在`满足某个特定条件的情况下,会自动调用`. 这类方法,称为魔法方法如何学习魔法方法:1. 魔法方法在什么情况下会自动调用2. 这个魔法方法有什么作用3. 这个魔法方法有哪些注意事项<1>__init__()调用时机: 在创建对象之后,会立即调用.作用: 1. 用来给对象添加属性,给对象属性一个初始值(构造函数) 2. 代码的业务需求,每创建一个对象,都需要执行原创 2021-03-24 16:52:25 · 50924 阅读 · 1 评论 -
(更新时间)2021年3月24日 python基础知识(类的实例属性)
1. 类外部添加和获取对象属性class Hero(object): """定义了一个英雄类,可以移动和攻击""" def move(self): """实例方法""" print("正在前往事发地点...") def attack(self): """实例方法""" print("发出了一招强力的普通攻击...")# 实例化了一个英雄对象 泰达米尔taidamier = Hero()# 给对象添加属性,以原创 2021-03-24 16:37:31 · 50873 阅读 · 0 评论 -
(更新时间)2021年3月24日 python基础知识(类的定义和创建对象)
1.定义类定义一个类,格式如下:class 类名: 方法列表demo:定义一个Hero类# class Hero: # 经典类(旧式类)定义形式# class Hero():class Hero(object): # 新式类定义形式 def info(self): print("英雄各有见,何必问出处。")说明:定义类时有2种形式:新式类和经典类,上面代码中的Hero为新式类,前两行注释部分则为经典类;object 是Python 里所有类的最顶原创 2021-03-24 16:30:44 · 51065 阅读 · 1 评论 -
(更新时间)2021年3月24日 python基础知识(批量修改文件名)
import osdef create_files(): for i in range(10): file_name = 'test/file_' + str(i) + '.txt' print(file_name) f = open(file_name, 'w') f.close()def create_files_1(): os.chdir('test') for i in range(10, 20):原创 2021-03-24 11:46:57 · 50990 阅读 · 2 评论 -
(更新时间)2021年3月24日 python基础知识(文件和文件夹相关操作)
文件和文件夹相关操作有些时候,需要对文件进行重命名、删除等一些操作,python的os模块中都有这么功能1. 文件重命名os模块中的rename()可以完成对文件的重命名操作rename(需要修改的文件名, 新的文件名)import osos.rename("毕业论文.txt", "毕业论文-最终版.txt")2. 删除文件os模块中的remove()可以完成对文件的删除操作remove(待删除的文件名)import osos.remove("毕业论文.txt")3. 创建文件夹原创 2021-03-24 11:45:12 · 51142 阅读 · 0 评论 -
(更新时间)2021年3月24日 python基础知识(文件备份)
1.文件备份相关代码file_name = input('请输入要备份的文件名')# 1. 用只读的方式,打开文件f = open(file_name, 'rb')# 2. 读取文件内容buf = f.read()# 3. 关闭文件f.close()# 根据原文件名,找到文件后缀和文件名index = file_name.rfind('.')# 后缀 file_name[index: ]# 新文件名new_file_name = file_name[:index] + '[备份原创 2021-03-24 11:40:59 · 50890 阅读 · 0 评论 -
(更新时间)2021年3月23日 python基础知识(大文件的读取)
1.小文件读取方式我们谈到“文本处理”时,我们通常是指处理的内容。Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: .read()、.readline() 和 .readlines()。每种方法可以接受一个变量以限制每次读取的数据量,但它们通常不使用变量。 .read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。然而.read() 生成文件内容最直接的字符串表示,但对于连续的面向行的处理,它却是不必要的,并且如果文件大于可用内存,则不可能实原创 2021-03-23 23:02:51 · 50786 阅读 · 0 评论 -
(更新时间)2021年3月23日 python基础知识(文件的读写)
1.文件的读写<1>读数据(read)<2>读数据(readlines)就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素f = open('test.txt', 'r')content = f.readlines()print(type(content))i=1for temp in content: print("%d:%s" % (i, temp))原创 2021-03-21 22:44:03 · 50839 阅读 · 1 评论