07 2023 档案
摘要:在Python中,进程(Process)和线程(Thread)都是用于实现并发执行的机制,但它们有一些重要的区别。 执行方式:进程是程序的一次执行过程,具有独立的内存空间,每个进程都有自己的代码段、数据段和堆栈;而线程是在进程内部执行的,共享进程的内存空间,包括代码段、数据段和堆栈。 资源占用:由于
阅读全文
摘要:在Python中,可以使用concurrent.futures模块提供的线程池来管理和执行多个线程任务。线程池提供了一种方便的方式来处理并发任务,可以有效地利用系统资源,提高程序的性能。 ''' 在Python中,可以使用concurrent.futures模块提供的线程池来管理和执行多个线程任务。
阅读全文
摘要:1 import threading 2 3 4 # 全局变量 5 g_num = 0 6 7 8 # 对g_num进行加操作 9 def sum_num1(): 10 # 上锁 11 print("sun_num1...") 12 print(f"sum_num1 id(mutex) {id(mu
阅读全文
摘要:在Python中,可以使用互斥锁(Mutex)来实现线程之间的互斥访问,保证共享资源的安全性。互斥锁可以确保在任何时刻只有一个线程可以持有锁,并且其他线程必须等待锁的释放才能继续执行。 步骤 1. 创建互斥锁对象: lock = threading.Lock() 通过threading.Lock()
阅读全文
摘要:什么是竞态条件? 竞态条件是指多个线程在访问和操作共享资源时,由于执行顺序的不确定性而导致结果不确定或出现错误。 示例1: ''' 竞态条件是指多个线程在访问和操作共享资源时,由于执行顺序的不确定性而导致结果不确定或出现错误。 ''' import threading # 共享变量 counter
阅读全文
摘要:线程之间共享全局变量 多个线程都是在同一个进程中 , 多个线程使用的资源都是同一个进程中的资源 , 因此多线程间是共享全局变量 问题 示例 1 import threading 2 3 4 # 全局变量 5 g_num = 0 6 7 8 # 对g_num进行加操作 9 def sum_num1()
阅读全文
摘要:IO密集型 1. IO密集型任务是指在执行过程中主要涉及到输入输出(IO)操作的任务。这些任务通常需要与外部资源进行交互,如读写文件、网络请求、数据库查询等,而实际的计算量相对较小。 2. 在IO密集型任务中,CPU的使用率相对较低,大部分时间都花费在等待IO操作完成上。因此,多线程在这种情况下能够
阅读全文
摘要:python 多线程并不是真正的并行执行,而java的多线程是真正的并行执行 python 在Python中,由于全局解释器锁(GIL)的存在,多线程并不能实现真正的并行执行。 GIL是一种机制,它限制了同一时刻只能有一个线程执行Python字节码,这意味着在多线程环境下,多个线程并不能同时执行CP
阅读全文
摘要:''' 在Python中,使用threading.Thread类创建守护线程可以通过设置daemon参数为True来实现。 守护线程是一种特殊的线程,它会随着主线程的结束而自动退出(守护线程会随着主线程的结束而自动退出。因此,如果主线程先结束,守护线程也会立即退出,无论守护线程是否执行完成。),无需
阅读全文
摘要:1 ''' 2 threading.Thread类是Python threading模块中用于创建和管理线程的主要类。它可以通过子类化并重写run()方法来定义自己的线程逻辑。一般会使用线程池 3 1. 构造器: 4 threading.Thread类的构造器如下: 5 class threadin
阅读全文
摘要:步骤 1. 导入线程模块 import threading 2. 创建子线程并指定执行的任务 sub_thread = threading.Thread(target=任务名 3. 启动线程执行任务 sub_thread.start() 示例 1 ''' 2 在Python中,实现多线程多任务可以通
阅读全文
摘要:在Python中,想要实现多任务还可以使用多线程来完成。用于IO密集型任务,是cpu调度的最小单位 为什么使用多线程?--节省资源(IO密集型任务) 1. 进程是分配资源的最小单位 , 一旦创建一个进程就会分配一定的资源 , 就像跟两个人聊QQ就需要打开两个QQ软件一样是比较浪费资源的 . 2. 线
阅读全文
摘要:说明 1. URL编码&解码 1 import java.io.UnsupportedEncodingException; 2 import java.net.URLDecoder; 3 import java.net.URLEncoder; 4 5 public class URLEncode {
阅读全文
摘要:守护进程(Daemon Process)是在后台运行的一种特殊类型的进程,它不会受到终端控制和交互的影响。守护进程通常用于执行一些系统级的任务或服务,比如网络服务、定时任务等。 ''' 1. 创建守护进程: 1. 在Python中,可以通过multiprocessing模块来创建守护进程。使用mul
阅读全文
摘要:os.kill是Python中用于向指定进程发送信号的函数。通过os.kill可以发送各种不同的信号,其中最常见的是SIGTERM信号,用于请求进程正常终止 os.kill的工作原理 os.kill函数允许我们向指定的进程发送信号。进程收到信号后,根据信号类型的不同,可以执行相应的处理逻辑。比如,S
阅读全文
摘要:锁 在multiprocessing模块中,可以使用Lock(锁)来实现进程间的同步。Lock提供了一种机制,确保在任意时刻只有一个进程能够访问共享资源。 Lock的工作原理 Lock是一种互斥锁,用于保护共享资源的访问。当一个进程获得了锁之后,其他进程将被阻塞,直到锁被释放。只有释放锁的进程才能继
阅读全文
摘要:''' multiprocessing 还提供了进程池(Pool)的功能,可以方便地管理一组工作进程。 进程池中的多个进程可以被重复使用,以执行多个任务,并在完成任务后自动回收进程。 ''' from multiprocessing import Pool def worker(x): return
阅读全文
摘要:说明 进程间除了主子进程共享数据,也可以通过进程间通信实现交互、数据共享 multiprocessing 提供了多种方式来实现进程间通信,如管道(Pipe)、队列(Queue)和共享内存(Value 和 Array)等。 通过这些机制,不同进程之间可以安全地共享数据或进行通信 进程间是不共享全局变量
阅读全文
摘要:''' multiprocessing.Process 类是 multiprocessing 模块中用于创建和管理进程的主要类。它提供了一系列方法和属性,用于控制和监视进程的行为。 1. 创建 Process对象: 语法: p = Process(target=func, args=(args,),
阅读全文
摘要:创建进程步骤 1. 导入进程包 import multiprocessing 2. 通过进程类创建进程对象 进程对象 = multiprocessing.Process() #是Process类 3. 启动进程执行任务 进程对象.start() 示例 1 # 1. 导入多进程模块 2 import
阅读全文
摘要:在Python程序中,想要实现多任务可以使⽤进程来完成,进程是实现多任务的⼀种⽅式。属于CPU密集型的任务。 进程的概念 进程(Process)是资源分配的最小单位,它是操作系统进行资源分配和调度运行的基本单位 ⼀个正在运⾏的程序或者软件至少有⼀个进程,也就是说每启动⼀个进程,操作系统都会给其分配⼀
阅读全文
摘要:多任务的执行方式 1. 并发 2. 并行 并发:在⼀段时间内一个cpu交替去执⾏任务。 示例: 对于单核cpu处理多任务,操作系统轮流让各个软件交替执⾏,假如:软件1 执⾏0.01秒,切换到软件2,软件2执⾏0.01秒,再切换到软件3,执⾏ 0.01秒……这样反复执⾏下去。表⾯上看,每个软件都是交替
阅读全文
摘要:1 ''' 2 datetime 模块是 Python 标准库中用于处理日期和时间的模块。 3 4 1. 详解: 5 datetime 模块提供了多个类来处理日期和时间,包括 date、time、datetime 和 timedelta 等。 6 1. date 类表示一个具体的日期(年、月、日)。
阅读全文
摘要:什么是包? 1. 包是一种组织Python代码的方式,它将相关模块组织在一个目录中,并提供了一个命名空间来避免命名冲突。 2. 通过使用包,可以更好地组织和管理大型项目的代码。 3. 创建一个文件夹并且在这个⽂件夹创建⼀个名字 为 __init__.py ⽂件,那么这个⽂件夹就称之为包 包的结构 1
阅读全文
摘要:说明 __all__是一个用于控制模块导入行为的特殊变量。它是一个定义在模块顶部的列表,其中包含了模块中可以被导入的公共接口(函数、类、变量等)。 当使用from 模块名 import *导入模块时,只有__all__列表中的成员会被导入,其他成员将不可见。 使用__all__的好处是可以限制导入的
阅读全文
摘要:1 ''' 2 1. 查找模块的顺序: 3 1. 当前目录:Python会首先搜索执行脚本所在的当前目录,也就是运行程序的工作目录。 4 2. 内置模块:如果在当前目录没有找到对应的模块,Python会接着搜索内置模块,这些模块是Python自带的,无需额外安装。 5 3. sys.path中的目录
阅读全文
摘要:1 ''' 2 导入模块的5种方式: 3 1. import 模块名 4 使用import关键字导入整个模块,然后可以使用模块名加点操作符来访问模块中的函数、类或变量。例如:import math。 5 6 2. from 模块名 import 功能名 7 使用from关键字从模块中导入指定的功能(
阅读全文
摘要:1. 什么是模块 说白了就是一个python文件即扩展名为py的文件。 1 ''' 2 Python模块(Module)是一种封装了代码的文件即是⼀个 Python ⽂件,以 .py 结尾,包含了 Python 对象定义和Python语句即模块可以包含函数、类、变量等python代码。 3 模块能定
阅读全文
摘要:1 ''' 2 1. 语法说明 3 自定义异常类是指在编程中,根据实际需要创建的用于表示特定错误或异常情况的类。 4 通过自定义异常类,我们可以更好地组织和处理代码中可能出现的异常情况。 5 class CustomException(Exception): 6 def __init__(self,
阅读全文
摘要:语法&示例 1 ''' 2 断言(assert)是一种用于检查程序中某个条件是否为真的语句。它用于在代码中插入自我验证的机制,以确保代码的正确性。 3 1. 语法: assert condition, message 4 condition是一个表达式,用于判断某个条件是否为真。如果条件为假,则断言
阅读全文
摘要:1 ''' 2 1. 语法: 3 try: 4 # 可能引发异常的代码 5 except ExceptionType1: 6 # 处理异常类型1的代码 7 except ExceptionType2: 8 # 处理异常类型2的代码 9 else: 10 # 如果没有发生异常,执行此处的代码 11 f
阅读全文
摘要:1 ''' 2 在Python中,raise关键字用于抛出异常。它允许程序员手动引发异常,以便在特定的条件下进行错误处理或向调用者报告错误/异常。 3 1. raise语句 4 raise语句用于引发异常,并可选择提供一个异常类型和一个可选的异常消息。 5 当raise语句被执行时,程序将立即停止当
阅读全文
摘要:1 ''' 2 语法: 3 try: 4 可能发生异常的代码块 5 except: # 没有指定任何异常类 6 异常处理代码块 7 ''' 8 import sys 9 import traceback 10 11 12 def division(x, y): 13 try: 14 return x
阅读全文
摘要:1 ''' 2 语法1: 3 try: 4 可能引发异常的代码块 5 except 异常类 as e: # 使用e作为其别名 6 异常处理代码块 7 ''' 8 9 10 def division(x, y): 11 try: 12 return x / y 13 except (ZeroDivis
阅读全文
摘要:语法 1 try: 2 # 可能引发异常的代码 3 except ExceptionType1: 4 # 处理第一种异常的代码 5 except ExceptionType2: 6 # 处理第二种异常的代码 7 except: 8 # 处理其他所有异常的代码 9 finally: 10 # 无论是否
阅读全文
摘要:1. 常见的内置异常类 1.1 Exception 1 try: 2 # 一些代码 3 except SpecificException: 4 # 处理特定的异常类型 5 except AnotherException: 6 # 处理另一种异常类型 7 except Exception as e:
阅读全文
摘要:1. 什么是异常 跟java异常(Exception)一样,都是指在程序执行过程中发生的错误或异常情况。当程序出现异常时,会中断正常的执行流程,并转而执行异常处理的逻辑。 2. 什么情况下触发异常 异常可以由多种原因引起,例如: 语法错误:代码不符合Python语法规则。 运行时错误:在代码执行期间
阅读全文
摘要:1 ''' 2 静态方法(Static Methods)是定义在类中的普通方法,与类和实例对象没有直接关联。静态方法可以通过类名直接调用,也可以通过实例对象调用。 3 4 1. 定义静态方法: 5 1. 静态方法使用@staticmethod装饰器来标识。 6 2. 静态方法不需要传递类或实例参数。
阅读全文
摘要:1 ''' 2 类方法(Class Methods)是定义在类上的方法,而不是实例对象上的方法。它可以通过类名直接调用,也可以通过实例对象调用. 3 1. 定义类方法: 4 1. 类方法使用@classmethod装饰器来标识。 5 2. 类方法的第一个参数通常被命名为cls,表示类本身,而不是实例
阅读全文
摘要:1 ''' 2 最佳实践: 3 1. 类属性适合用于表示类的共享信息,例如默认配置、常量等。 4 2. 实例属性适合用于存储每个实例对象的独特数据或状态。 5 3. 在类中定义默认值时,应使用类属性,而不是实例属性。 6 4. 在实例方法中访问类属性时,可以使用 self.class_attribu
阅读全文
摘要:1 ''' 2 在Python中,类属性和实例属性是面向对象编程中常用的概念. 3 1. 类属性(Class Attributes): 4 1. 类属性是属于整个类的属性,对所有实例对象共享。 5 2. 类属性可以在类的内部或外部进行定义,通过类名或实例访问。 6 3. 类属性通常用于表示类的共有特
阅读全文
摘要:1 ''' 2 python与java一样都是面向对象编程(Object-Oriented Programming,OOP),因此也具有封装、继承和多态这三个主要特征 3 通过封装、继承和多态这三个特征,面向对象编程在Python中能够提供模块化、可重用和可扩展的代码结构,使得程序更容易理解和维护。
阅读全文
摘要:__mro__ 是 Python 中的一个特殊属性,它代表了类的方法解析顺序(Method Resolution Order)。MRO 定义了子类在继承关系中查找方法和属性的顺序。在多继承的情况下,MRO 确定了方法和属性的查找顺序,以避免冲突和歧义。 __mro__ 的用途 方法解析顺序:__mr
阅读全文
摘要:1 ''' 2 私有属性在类外无法通过对象.属性名获取,因此提供setter&getter方法来访问、修改 3 ⼀般定义函数名 get_xx ⽤来获取私有属性,定义 set_xx ⽤来修改私有属性值 4 ''' 5 6 class Master(object): 7 def __init__(sel
阅读全文
摘要:1 ''' 2 在Python中,可以为实例属性和⽅法设置私有权限,即设置某个实例属性或实例⽅法不继承给⼦类 3 4 设置私有权限的⽅法:在属性名和⽅法名 前⾯ 加上两个下划线 __。 5 ''' 6 7 class Master(object): 8 def __init__(self): 9 s
阅读全文
摘要:说明 子类调用父类同名方法和属性 同名方法2种形式: 通过父类名.方法名()调用指定父类的方法 && super().方法名() # 调用父类的同名方法 同名属性2种形式: 父类名.__init__(self)让父对象初始化(实例属性) 或父类名.类属性 方法1:父类名.方法名() 1 ''' 2
阅读全文
摘要:1 ''' 2 子类重写父类同名属性和方法 3 ''' 4 5 6 # 1. 师父类,属性和方法 7 class Master(object): 8 def __init__(self): 9 self.kongfu = '[古法煎饼果子配方]' 10 11 def make_cake(self):
阅读全文
摘要:MRO(Method Resolution Order)是指多继承中确定方法调用顺序的算法。Python 3 默认使用 C3 算法来计算 MRO。 在使用多继承时,以下是一些 MRO 的最佳实践、坑和示例: 最佳实践: 明确继承关系:在设计类的继承结构时,要清晰明确地指定父类和子类之间的继承关系,避
阅读全文
摘要:分类 python继承不像java使用支持单继承,而python支持单继承、多继承。 单继承 1 class ParentClass: 2 # 父类的属性和方法 3 4 class ChildClass(ParentClass): 5 # 子类的属性和方法 单继承顾名思义就是子类只有1个父类。示例C
阅读全文
摘要:1 ''' 2 继承:子类复用父类属性、方法 3 ''' 4 5 6 class Parent(): 7 8 def __init__(self): 9 self.name = 'Allen' 10 11 def say(self): 12 print(f'say name:{self.name}'
阅读全文
摘要:继承的概念 继承是面向对象编程中的一种重要概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类、基类或超类)的属性和方法。 通过继承,子类可以获得并重用父类的代码,同时还可以添加、修改或覆盖父类的功能。 继承的主要目的是实现代码的重用和扩展即通过继承,子类可以从父类继承属性和方法(公有和私有
阅读全文
摘要:1 ''' 2 给一套房子装修即房子里面添加家具 3 1. 家具的属性 4 1. 名称 5 2. 大小/面积 6 2. 房子的属性 7 1. 位置 8 2. 总面积 9 3. 空闲面积 10 3. 房子的行为: 11 1. 置办家具 12 ''' 13 14 15 class Furniture:
阅读全文
摘要:需求(目的:练习面向对象思想,分析主题及主题之间关系) 需求主线: 1. 被烤的时间和对应的地⽠状态: 0-3分钟:⽣的 3-5分钟:半⽣不熟 5-8分钟:熟的 超过8分钟:烤糊了 2. 添加的调料: ⽤户可以按⾃⼰的意愿添加调料 分析 主题的拆分(就涉及1个地瓜) 需求涉及⼀个事物: 地⽠。根据面
阅读全文
摘要:1 ''' 2 __eq__(), __lt__(), 和 __gt__() 都是 Python 的特殊方法,用于比较对象之间的大小和相等性。 3 4 1. __eq__(self, other): 5 1. 用于检查两个对象是否相等。 6 2. 接受一个参数 other,表示与当前对象进行比较的另
阅读全文
摘要:__getattr__ 当访问对象的属性不存在时被自动调用。 1 class MyObject: 2 def __init__(self): 3 self.data = {'name': 'Alice', 'age': 25} 4 self.id=1 5 6 def __getattr__(self
阅读全文
摘要:__call__方法详解 1 ''' 2 __call__() 是一个特殊方法,用于使对象可以像函数一样被调用。当我们使用对象名加括号的形式来调用对象时,会调用该对象的 __call__() 方法。 3 4 详解: 5 1. __call__(self, *args, **kwargs) 方法接受任
阅读全文
摘要:1 ''' 2 __contains__() 是一个特殊方法,用于定义对象是否包含某个元素的逻辑。它在使用 in 运算符检查成员关系时被调用。 3 4 详解: 5 1. __contains__(self, item) 方法接受一个参数 item,表示要检查的元素。 6 2. 该方法应返回一个布尔值
阅读全文
摘要:1 class MyIterable: 2 def __init__(self): 3 self.data = [1, 2, 3] 4 5 def __getitem__(self, index): 6 return self.data[index] 7 8 def __iter__(self):
阅读全文
摘要:__iter__ __iter__(self) 是一个特殊方法,用于返回一个迭代器对象,使得自定义的类可以支持迭代操作。 最佳实践: 在自定义类中实现 __iter__() 方法时,应该返回一个迭代器对象,通常是自身的实例。 迭代器对象应该实现 __next__() 方法,用于返回容器中的下一个元素
阅读全文
摘要:1 ''' 2 __getitem__(self, key)、__setitem__(self, key, value) 和 __delitem__(self, key) 是 Python 中的特殊方法,用于定义对对象进行索引操作时的行为。 3 它们分别用于获取、设置和删除对象中的元素 4 1. _
阅读全文
摘要:1 ''' 2 __len__() 是一个魔法方法,用于返回对象的长度或元素个数。 3 它通常被用于支持内置函数 len() 的调用,并在自定义的容器类中实现。 4 最佳实践: 5 1. 在容器类中实现 __len__() 方法可以提供对象的长度信息,使其能够像内置容器(如列表、字典等)一样使用。
阅读全文
摘要:1 ''' 2 __repr__() 和 __str__() 都是 Python 中的特殊方法,用于定义对象的字符串表示形式。它们之间的区别如下: 3 1. __repr__(self):返回一个字符串,用于表示对象的“官方”字符串表示形式。这个字符串应该是可以用来重新创建对象的,并且应该尽可能准确
阅读全文
摘要:什么是魔法方法? Python类中的魔法方法(Magic Methods)是特殊的方法,以双下划线(__)开头和结尾的方法。 这些方法在对象的创建、运算符重载、属性访问等方面提供了特定的行为。 都是内置方法,一般方法命名不建议使用这种格式即双下划线开头和结尾的方法 __init__(self, ..
阅读全文
摘要:说明 属性即是特征,⽐如:人的年龄、性别、体重... 对象属性既可以在类外⾯添加和获取,也能在类⾥⾯添加和获取。 类外添加或修改对象属性 语法 对象名.属性名 = 值 类外访问对象属性 语法 对象名.属性名 类内访问、修改、添加对象属性 使用self代替对象名访问、修改、添加对象属性 示例 '''给
阅读全文
摘要:类 定义类语法 1 class ClassName: # 如果写类的f-docstring,就直接写在Class ClassName下一行 2 # 属性 3 attribute1 = value1 4 attribute2 = value2 5 6 # 方法 7 def method1(self,
阅读全文
摘要:什么是面向对象? 一切皆对象,用面向对象的思想去编码,描述您的需求。 1. 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将数据和操作数据的方法封装在一个对象中。 2. 面向对象(Object-Oriented)是一种编程范式或方法论,它将数据和
阅读全文
摘要:1 """ 2 1. 导入模块os 3 2. 使用模块内功能 4 """ 5 import os 6 7 # 1. rename(): 重命名 8 os.rename('1.txt', '10.txt') # 1.txt不存在时,报错FileNotFoundError: [WinError 2] 系
阅读全文
摘要:seek()函数是用于在文件中移动文件指针位置的方法。它可以用来定位文件中的特定位置,以便读取或写入数据 语法: file.seek(offset, whence) 参数说明: 1. offset:表示要移动的偏移量,可以是正数或负数。 2. whence:表示移动起点,可选值有: 0(默认值):从
阅读全文
摘要:1 ''' 2 1. 使用with语句管理文件对象的打开和关闭,以确保及时释放资源。 3 2. 指定适当的打开模式来满足你的需求,例如只读、写入、追加等 4 3. 使用encoding参数指定正确的字符编码,以便正确处理文本文件 5 4. 对于大型文件,可以使用逐行读取或使用缓冲区来提高性能 6 5
阅读全文
摘要:步骤 1. 文件操作步骤 1. 打开文件 2. 读写等操作,此步骤可省略 3. 关闭文件注意:可以只打开和关闭⽂件,不进⾏任何读写操作。 语法 1 open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None,
阅读全文
摘要:1 ''' 2 学习管理系统-命令窗口实现,功能启动如下: 3 1. 定义功能界面 4 2. 添加学员 5 3. 删除学员 6 4. 修改学员 7 5. 查询学员 8 6. 显示所有学员 9 7. 退出系统 10 ''' 11 12 ''' 13 1. 定义功能界面:用于说明此系统的作用及使用说明
阅读全文
摘要:1 ''' 2 filter()函数是Python内置的一个高阶函数,它用于过滤可迭代对象中的元素,只保留满足特定条件的元素。filter()函数接受两个参数:一个函数和一个可迭代对象。 3 语法: 4 filter(function, iterable) 5 其中: 6 1. function是一
阅读全文
摘要:说明map函数可以对一个可迭代对象的每个元素进行处理,处理的方式通过指定的函数决定。并返回处理结果(迭代器对象)示例 ''' map()函数是Python内置的高阶函数之一,它接受一个函数和一个可迭代对象作为参数,将函数应用于可迭代对象中的每个元素,并返回一个新的迭代器对象 其语法:map(func
阅读全文
摘要:什么是高阶函数? 在Python中,高阶函数是指能够接受函数作为参数或返回函数作为结果的函数。 ''' 0. 体验 ''' def sum_num(a, b, f): # 定义1个高阶函数:入参可接受一个函数f return f(a) + f(b) # 调用函数f result1 = sum_num
阅读全文
摘要:语法&说明 语法 abs(x) 说明 abs()是Python内置函数,用于返回一个数的绝对值。 其中,x是要求绝对值的数字 1 num = -5 2 absolute_value = abs(num) # 返回5 示例 1 ''' 2 abs()是Python内置函数,用于返回一个数的绝对值 3
阅读全文
摘要:1 ''' 2 内置函数round对参数进行四舍五入/ 3 语法: round(number, ndigits) 4 其中,number是要进行四舍五入的数字,而ndigits是可选参数,表示保留小数的位数,默认为0。 5 number:要进行四舍五入的数字。 6 ndigits:保留小数的位数。如
阅读全文
摘要:1 ''' 2 abs()是Python内置函数,用于返回一个数的绝对值 3 语法: abs(x)其中,x是要求绝对值的数字 4 5 注意事项: 6 1. abs()函数只能应用于数值类型(整数、浮点数、复数),不能用于其他类型(如字符串)。 7 2. 注意在使用负数时,abs()函数会返回其绝对值
阅读全文
摘要:匿名函数 顾名思义就是没有名字的函数。 匿名函数是一种没有函数名的函数,也称为"lambda函数"。 它是一种简洁的函数定义方式,可以在需要函数对象的任何地方使用,并且通常用于简化代码或作为其他函数的参数。 语法 1 lambda arguments: expression 其中,arguments
阅读全文
摘要:1 ''' 2 函数的递归即函数调用自己 3 最佳实践: 4 1. 定义基本情况(终止条件): 递归函数应该始终包含一个或多个基本情况,即终止条件。这些基本情况描述了递归的结束条件,当满足这些条件时,递归将停止并返回结果。 5 2. 确保向基本情况收敛: 确保递归过程能够向基本情况无限接近,并最终收
阅读全文
摘要:函数的变量作用域以及访问、修改全局变量 1 ''' 2 函数往往涉及2类变量: 3 1. 全部变量,直接访问,修改需要使用global关键字 4 2. 局部变量,函数内部定义的变量 5 ''' 6 7 # 1. 全局变量 8 name = 'Allen' 9 10 11 # 1.1 定义函数 12
阅读全文
摘要:1 ''' 2 拆包和交换变量值 3 ''' 4 5 6 # 1. 拆包 7 # 1.1 拆包: 元组 8 def return_num(): 9 return 1, 2 10 11 12 num1, num2 = return_num() # 拆包 13 print(num2) 14 print(
阅读全文
摘要:函数的作用 函数就是将一段具有独立功能的代码块整合到一个整体并命名(函数名),在需要的位置通过函数名调用,这样就可以执行这个代码块。 函数也是代码重用的一种方式。 函数的语法及调用步骤 函数是直接在模块/py文件中定义的,与类方法、实例方法有区别。 1 ''' 2 一、 函数的语法: 3 def f
阅读全文
摘要:1 ''' 2 Python推导式(Comprehensions)是一种简洁而强大的语法,用于创建新的数据结构(如列表、集合和字典)或对现有数据结构进行转换。 3 它可以使用更简单的方式完成迭代、筛选、映射等操作。 4 5 ''' 6 # 1. 循环生成列表 7 # 1.1 准备⼀个空列表 8 li
阅读全文
摘要:说明 从字符串、列表、元组、字典等维度,找出其共同的操作,比如在运算符、公共方法、容器类型转换 运算符 1 ''' 2 字符串,列表,字典,集合公共操作之运算符 3 主要用于字符串\列表\元组的拼接 && 倍乘 & 成员判断 4 ''' 5 6 # 1. 加号 + 7 # 1.1 字符串拼接 8 s
阅读全文
摘要:语法 集合是一种无序且不重复的数据结构,用于存储多个元素。它使用花括号 {} 来表示,并且元素之间使用逗号 , 分隔。以下是创建集合的基本语法: my_set = {element1, element2, ...}其中,element 可以是任意类型的对象。需要注意的是,如果只使用一个空的花括号 {
阅读全文
摘要:语法 字典是一种无序的数据结构,用于存储键-值对。它使用花括号 {} 来表示,并且键和值之间使用冒号 : 分隔,各个键值对之间⽤逗号隔开. 语法: my_dict = {key1: value1, key2: value2, ...}其中,key 是唯一的且不可变的(通常使用字符串或数字),而 va
阅读全文
摘要:1 # 1. 自动组包(Automatic Packaging)指的是将多个值按照一定的规则打包成一个数据结构,如元组或列表 2 my_tuple = 1, 2, 3 # 自动组包为元组 3 print(type(my_tuple)) # <class 'tuple'> 4 my_list = [1
阅读全文
摘要:说明 元组是Python中的一个不可变序列数据类型,用于存储多个元素。它使用圆括号 () 来表示,并可以包含任意类型的元素,如整数、字符串、列表等语法: my_tuple = (element1, element2, ...)注意事项: 1. 元组是不可变的,这意味着一旦创建,就无法修改其中的元素。
阅读全文
摘要:1 ''' 2 列表的综合应用,需求如下: 3 有三个办公室,8位⽼师,8位⽼师随机分配到3个办公室 4 ''' 5 import random 6 7 # 1. 用列表存放8位老师 8 teacher_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
阅读全文
摘要:说明 列表sort方法是原地排序即会修改原列表。在日常工作中遇到一些坑,总结在示例里 示例 1 ''' 2 sort是原地排序即会修改原列表 3 ''' 4 5 # 1. 原地排序,没有新增列表,只是修改了原列表。如果遇到保留原始列表,可通过切片生成1个新的 6 my_list = [3, 1, 2
阅读全文
摘要:说明 在Python中,列表是一种有序、可变的数据类型,用于存储多个元素。 列表使用方括号[]来表示,其中的元素可以是任意类型,并且可以根据需要进行增删改查。 常用的操作就是创建、元素增删改查、复制、排序 其特点包括: 有序性:列表中的元素按照其在列表中的位置进行存储,保持了元素的顺序(有下标,从0
阅读全文
摘要:1 ''' 2 正则表达式的方法 3 ''' 4 5 import re # 0. 导入正则模块 6 7 ''' 8 1. 使用re.search()方法进行搜索匹配 9 1. 预编译正则表达式模式:如果你需要多次使用同一个正则表达式模式,建议使用re.compile()方法预先编译该模式(# 预编
阅读全文
摘要:1 ''' 2 1. 在Python中,str是内置类,代表字符串(即文本数据)。字符串是Python中最常用的数据类型之一,它允许您存储和操作文本数据。 3 2. 字符串类str是不可变类。即不管怎么操作,原字符串还是存在的,像replace、大小写转换等操作只是创建一个新的字符串 4 5 官网参
阅读全文
摘要:说明 除了if可以跟else搭配使用,while、for也可以与else搭配使用,表示循环正常结束,后执行else语句。 while - else 语法 1 while 条件: 2 # 循环体 3 # 在这里执行需要重复的操作 4 else: 5 # 循环条件为 False 时执行的代码 在这个语法
阅读全文
摘要:语法 1 for 变量 in 可迭代对象: 2 # 循环体 3 # 在这里执行需要重复的操作 在这个语法中: 变量 是用于表示可迭代对象中的每个元素的临时变量名。在每次迭代时,变量将被赋值为可迭代对象的下一个元素。 可迭代对象可以是列表、元组、字符串、字典或其他任何可迭代的数据类型。 循环体是一个缩
阅读全文
摘要:1 ''' 2 练习 while循环 3 其实就是练习手感,不停的敲 4 ''' 5 6 ''' 7 1. 打印星号(三⻆形) 8 * 9 ** 10 *** 11 **** 12 ***** 13 找规律,弄懂需求:5行5列,只显示了column <= row。显示的内容是* 14 解决:2个循环
阅读全文
摘要:什么是循环语句? 在 Python 中,循环语句用于反复执行一段代码,直到满足特定的条件为止。 循环语句允许重复执行某个代码块,以便处理大量数据、实现算法、迭代集合等。 分类 1. for循环 2. while循环 while循环 1. 语法 while <condition>: # 循环体代码 2
阅读全文
摘要:语法 <value1> if <condition> else <value2>其中,<condition> 是一个条件表达式,返回一个布尔值。如果条件为真,则整个表达式的返回值是 <value1>;否则,返回值是 <value2>。 示例 1 ''' 2 三⽬运算符也叫三元运算符或三元表达式 3
阅读全文
摘要:1 ''' 2 需求: 3 1. 通过人机交换实现您的出拳(input函数的应用) 4 2. 通过伪随机数模块random实现模拟对手出拳 5 3. 然后进行数据处理,得出结果 6 4. 输入数字非0、1、2退出 7 ''' 8 9 import random # 导入随机数模块random 10
阅读全文
摘要:说明 1. 要知道什么是伪随机数?什么是随机数的种子? 2. 伪随机数random的学习: 2.1 生成一个伪随机数randomint(start,end)、random() 2.2 对序列处理:洗牌(shuffle)、随机选1个(choice)、生成序列(randrange) 示例 1 ''' 2
阅读全文
摘要:语法-4种 1. 只有if if 条件表达式或布尔: 条件成⽴执⾏的代码1 条件成⽴执⾏的代码2 …… 2. if + else if 条件表达式或布尔: 条件成⽴执⾏的代码1 条件成⽴执⾏的代码2 ……else: 条件不成⽴执⾏的代码1 条件不成⽴执⾏的代码2 …… 3. if + elif +
阅读全文
摘要:说明 为了提高性能,对于一部分整数对象(int objects)采用了缓存策略。 在Python解释器启动时,会自动创建一个适用于整数的缓存池。该缓存池主要用于缓存范围在-5到256之间的整数对象。当使用相同的整数值创建多个变量时,这些变量将引用缓存池中相同的整数对象,而不是每次都创建新的对象。 特
阅读全文
摘要:1. 分类(7类) 1. 算术运算符(Arithmetic Operators):用于执行基本的数值运算,如加法、减法、乘法、除法等。 2. 比较运算符(Comparison Operators):用于比较两个值之间的关系,如相等、不等、大于、小于等。 3. 赋值运算符(Assignment Ope
阅读全文
摘要:1. 通过help函数查看input的docstring 1 # 1. 通过内置函数help查看input函数的docstring 2 ''' 3 input(prompt='', /) 4 Read a string from standard input. The trailing newlin
阅读全文
摘要:1. 说明 print内置函数是builtins模块的函数,用于向标准输出、文件打印数据 2. 示例 1 help(print) 2 ''' 3 Help on built-in function print in module builtins: 4 5 print(*args, sep=' ',
阅读全文
摘要:help() 是一个内置函数,用于获取有关对象、模块、函数、类等的帮助信息。它能够提供对象的文档字符串(docstring)、方法、属性以及其他相关信息。 help() 函数提供的帮助信息是根据对象的文档字符串(docstring)生成的,因此,在编写代码时,为你自己的函数、类和模块提供清晰和详细的
阅读全文
摘要:1. 获取或设置默认编解码 在 Python 中,默认编码类型是由解释器在启动时自动设置的,并且在运行过程中不可更改。但你可以在代码中显式地指定和使用特定的编码类型来处理字符串。通过设置文件头的注释添加以下内容,可以告诉解释器源代码文件的编码类型: # -*- coding: utf-8 -*- 上
阅读全文
摘要:什么是字符编码 & 解码 字符编码 字符编码是将字符转换为二进制表示的过程。它是为了能够在计算机系统中处理和存储文本而创建的一种方式。由于计算机只能理解二进制数据,需要将字符转换为相应的二进制编码形式才能进行处理。 字符解码 字符解码是将二进制数据转换回字符的过程。它是将存储在计算机中的二进制数据转
阅读全文
摘要:1. 区域设置--locale模块的setlocale函数 区域设置是一个标识特定地理、文化和语言的系统参数。它影响如日期和时间格式、货币和数字格式以及其他地域相关的操作。 在 Python 中,使用 locale.setlocale() 函数可以设置区域设置来适应不同的地区和语言要求。 该函数的语
阅读全文

浙公网安备 33010602011771号