自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(174)
  • 资源 (2)
  • 收藏
  • 关注

原创 闭包、装饰器学习笔记(第二次学习)

def inner(*args, **kwargs): # 这里的 * 和 ** 代表接收参数,打包成元组和字典。print("你好啊,我叫赛利亚,今天又是美好的一天!print("你好啊,我叫赛利亚,今天又是美好的一天!print("你好啊,我叫赛利亚,今天又是美好的一天!print("你好啊,我叫赛利亚,今天又是美好的一天!print("你好啊,我叫赛利亚,今天又是美好的一天!print("你好啊,我叫赛利亚,今天又是美好的一天!play_lol("admin2", "123456", "大盖伦")

2025-03-27 19:42:48 1235

原创 高级函数之 闭包,装饰器

return x + y # 访问外部函数的局部变量 x。result1 = inner(5) # 输出:15。1 函数嵌套 2 内部函数用了外部函数的变量或者参数。3 外部函数返回了内部函数(是返函数名,不带括号)这个使用了外部函数变量的内部函数称为闭包。内用外参,外返内函。作用:可以保存外部函数的变量。

2025-03-20 00:02:04 238

原创 简单的学生信息管理系统代码以及分析

初始化 `StudentManagementSystem` 类,创建一个空的列表 `students`,用于存储学生信息。

2025-03-19 20:23:31 744

原创 设计模式工厂模式和单例模式结合

设计模式工厂模式和单例模式结合

2025-03-19 20:21:15 1026

原创 设计模式之单例模式(Singleton Pattern)

如果 `_instance` 是 `None`,表示尚未创建实例,调用 `super().__new__(cls)` 创建一个新的实例,并初始化日志文件路径。- 它接收类本身(`cls`)作为第一个参数,以及可选的位置参数(`*args`)和关键字参数(` ** kwargs。- **全局访问点**:通过 `Logger()` 创建的实例总是返回同一个对象。- **单例模式**:确保一个类只有一个实例,并提供一个全局访问点。- **单例模式**:确保 `Logger` 类只有一个实例。

2025-03-19 13:21:04 556

原创 设计模式之工厂模式

我们继续使用宠物的例子来说明工厂方法模式。在工厂方法模式# 中,我们定义了一个工厂类,它提供了一个方法来创建对象,但# 具体的创建逻辑由子类实现。这样可以方便地扩展和维护代码。在这个例子中:- `Logger` 是一个抽象基类,定义了日志记录器的接口。- `FileLogger` 和 `ConsoleLogger` 是具体的日志记录器类,实现了 `log` 方法。

2025-03-19 12:13:21 960

原创 类的__new__( )方法

__new__` 方法是一个静态方法,它接收类本身作为第一个参数(通常命名为 `cls`),并返回一个类的新实例。- 如果 `__new__` 返回的是其他类型的对象,`__init__` 方法不会被调用。- 如果 `__new__` 返回的是类的新实例,`__init__` 方法会被自动调用。### **3. `__new__` 和 `__init__` 的区别**- **`__new__` 方法**:负责创建类的新实例,是一个静态方法。### **1. `__new__` 的基本用法**

2025-03-19 02:42:13 681

原创 组合Composition(has-a)

例如,`Car` 的 `start` 方法需要调用 `Engine` 的 `start` 方法,这可能会增加一些开销。- 例如,`Car` 类需要管理多个 `Wheel` 和一个 `Engine`,这可能会增加代码的复杂性。- `Car` 的 `drive` 方法调用了每个 `Wheel` 的 `rotate` 方法。- `Car` 的 `start` 方法调用了 `Engine` 的 `start` 方法。- `Car` 的 `start` 方法调用了 `Engine` 的 `start` 方法。

2025-03-18 23:28:18 281

原创 __str__特殊方法

如果没有定义 `__str__` 方法,Python 会调用 `__repr__` 方法作为替代。- **最佳实践**:实现 `__str__` 方法时,返回一个易于理解的字符串,描述对象的内容或状态。- 虽然 `__repr__` 更适合调试,但 `__str__` 也可以提供有用的信息。### **3. `__str__` 和 `__repr__` 的区别**#### 示例 2:同时实现 `__str__` 和 `__repr__`- `__str__` 方法的返回值应该易于理解,适合面向用户。

2025-03-18 23:27:05 323

原创 私有属性和私有方法

在 Python 中,类的属性和方法可以被定义为**私有**(Private)或**公有**(Public)。这段代码定义了一个简单的银行账户类 `BankAccount`,用于模拟银行账户的基本操作,包括存款、取款和查询余额。- **`self.__balance`**:这是一个私有属性,表示账户的余额。- `print(account.get_balance())`:通过公有方法查询余额,输出 50。- **私有属性和方法**:通过在名称前加上双下划线 `__` 定义,触发名称改编,保护类的内部状态。

2025-03-18 01:08:36 572

原创 __call__

**动态行为**:可以在 `__call__` 方法中实现复杂的逻辑,使对象的行为更加灵活。- **动态行为**:可以在 `__call__` 方法中实现复杂的逻辑,使对象的行为更加灵活。- **使对象可调用**:定义了 `__call__` 方法后,类的实例可以像函数一样被调用。- **`__call__` 方法**:使类的实例可以像函数一样被调用。- **`**kwargs`**:可选参数,用于接收关键字参数。- **`*args`**:可选参数,用于接收位置参数。

2025-03-17 22:53:51 427

原创 字典中当存在值为None的键,怎么判断该键存不存在?

get()` 方法可以用来检查键是否存在,同时避免抛出 `KeyError` 异常。可以使用以下几种方法来判断 `info` 字典中是否存在键 `"data"`。print("键 'data' 不存在")print("键 'data' 不存在")print("键 'data' 不存在")print("键 'data' 不存在")print("键 'data' 存在")print("键 'data' 存在")print("键 'data' 存在")print("键 'data' 存在")

2025-03-14 10:02:39 384

原创 while……else

在 Python 中,`while` 循环可以与 `else` 块配合使用。### **`while...else` 的工作原理**# 示例 2:循环被 break 中断。# else 块的内容。### **示例:搜索元素**# 示例 1:循环正常结束。### **示例代码**### **使用场景**

2025-03-09 20:55:36 901

原创 元组可以append吗

new_tuple = original_tuple + (new_element,) # 注意:(new_element,) 是一个单元素元组。3. **性能优化**:由于元组是不可变的,Python 可以对其进行一些优化,使其在某些情况下比列表更高效。print(combined_tuple) # 输出:(1, 2, 3, 4, 5, 6)不,元组(Tuple)在 Python 中是**不可变**的数据结构,这意味着。**:只有不可变类型可以作为字典的键,因此元组可以用作字典的键,而列表则不能。

2025-03-09 14:01:05 387

原创 for-else结构学习

在 Python 中,`for` 循环可以与 `else` 语句结合使用,这种语法结构称为 **`for-else`**。- 如果 `n` 能被任何小于其平方根的数整除,则 `for` 循环会被 `break` 中断,函数返回 `False`。- 如果循环正常结束(没有找到能整除的数),则执行 `else` 块,返回 `True`。- 如果找到 `6`,则执行 `break`,循环中断,`else` 块不会执行。- 如果循环正常结束(没有找到 `6`),则执行 `else` 块。

2025-03-08 14:47:36 543

原创 字典的setdefault()

print(my_dict) # 输出:{'name': 'Alice', 'age': 25, 'city': 'New York'}print(my_dict) # 输出:{'name': 'Alice', 'age': 25, 'city': 'Unknown'}print(my_dict) # 输出:{'name': 'Alice', 'age': 25, 'city': None}如果不指定,默认为 `None`。### **对比:`get()` vs `setdefault()`**

2025-03-05 20:46:50 651

原创 字典的pop()方法和popitem()

pop()` 方法是字典的一个非常有用的方法,用于安全地移除字典中的键值对,并返回对应的值。- 例如,你可以返回一个默认值(如 `None`、`""` 或 `"Unknown"`),而不是返回 `None`。- 使用 `pop()` 方法可以使代码更加简洁,避免使用冗长的 `if-else` 语句来检查键是否存在。- 例如,如果你不确定某个键是否存在,使用 `pop()` 可以提供一个默认值,而不是让程序崩溃。在 Python 中,`pop()` 是字典(`dict`)的一个方法,

2025-03-05 18:21:23 395

原创 元组或者集合里能不能放列表。元组,集合,列表里可不可以放集合

print(my_set) # 输出:{'apple', 'banana', 'cherry', frozenset({1, 2, 3})}集合(`set`)是一个无序的集合类型,其元素必须是**不可变**的(即必须是可哈希的)。print(my_set) # 输出:{'apple', 'banana', 'cherry', (1, 2, 3)}- **集合中不能直接包含列表**:集合的元素必须是不可变的(可哈希的),而列表是可变的,因此不能直接作为集合的元素。### **总结**

2025-03-05 15:30:31 456

原创 for循环相关(循环的过程中对数据进行删除会踩坑)

具体来说,直接在遍历列表时修改列表的大小(如通过 `remove()` 方法)会导致迭代器失效,从而跳过某些元素。这可能会导致结果不符合预期。#### 方法 2:使用 `filter()` 函数。#### 方法 1:使用列表推导式。

2025-03-04 23:26:12 318

原创 isdigit()和isdecimal()

在 Python 中,`isdecimal()` 和 `isdigit()` 是字符串方法,用于检查字符串是否只包含数字。虽然它们看起来功能相似,但它们在处理某些特殊字符时的行为有所不同。以下是它们的详细区别和使用场景。---### **1. `isdigit()`**#### **定义**`isdigit()` 方法用于检查字符串是否只包含数字字符。它返回 `True` 如果所有字符都是数字,否则返回 `False`。#### **特点**- **支持数字字符**:包括阿拉伯数字(0-9)、罗马数字、

2025-03-03 21:15:21 102

原创 逻辑运算and or not

在 Python 中,表达式 `v = "aaa" and "bbb"` 的结果可能与你预期的不同。- 因此,`"aaa" and "bbb"` 的结果是 `"bbb"`,因为 `"bbb"` 是最后一个真值。- `"bbb"` 也是真值,因此 `and` 运算符返回最后一个值 `"bbb"`。print(v) # 输出:空字符串("")- `"aaa"` 是真值,因此不会中断表达式。- `"bbb"` 也是真值。print(v) # 输出:bbb。- `"aaa"` 是真值。

2025-03-03 12:34:13 214

原创 _ 为什么在python中可以当变量名

虽然 `_` 本身并不是严格意义上的“私有”标识符,但在 Python 中,以单个下划线开头的变量名(如 `_variable`)通常被视作“受保护的”(protected)或“内部使用”的变量。Python 允许使用字母(`a-z`、`A-Z`)、数字(`0-9`)和下划线(`_`)作为变量名的字符,但变量名不能以数字开头。1. **简洁性**:`_` 是一个简单的字符,用作变量名非常方便,尤其是在临时变量或不重要的值的场景中。### 2. **`_` 的常见用途**#### **3. 交互式解释器**

2025-03-02 22:54:50 374

原创 JSON(JavaScript Object Notation)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于文本,独立于语言,但使用起来非常自然,尤其是对于像JavaScript、Python等语言。

2025-02-28 22:59:52 468

原创 @property

property是 Python 中实现属性封装和拦截的强大工具。它允许你通过方法的形式访问和修改属性,同时隐藏内部实现细节,增强代码的可读性和可维护性。@property你的代码定义了一个Circle类,并使用了@property装饰器来创建一个只读属性diameter。这个属性基于圆的半径(radius)动态计算直径。Python复制Circle类有一个构造函数__init__,它接收一个参数radius并将其存储为实例属性。diameterPython复制@property。

2025-02-28 15:36:53 596

原创 魔法方法:__str__( )

_str__()是一个非常有用的特殊方法,用于定义对象的字符串表示。它可以让对象在打印或转换为字符串时更加友好和易于理解。合理定义__str__()和__repr__()可以显著提升代码的可读性和可维护性。

2025-02-26 16:30:13 245

原创 eval函数相关

你的代码通过eval动态计算了字符串表达式"a + b"的值,并使用字典dict1作为上下文环境。最终结果是300。虽然eval是一个强大的工具,但在实际使用中需要谨慎,避免潜在的安全风险。

2025-02-25 16:11:24 222

原创 python match...case 实现字典的匹配

'User: Alice, Age: 25' 是字典的值(Value),对应于键 'message'。语句(结构化模式匹配)是从 Python 3.10 开始引入的一种强大的语法特性,用于替代传统的。来匹配字典中的键值对。以下是一个示例,展示如何根据字典的内容执行不同的操作。不是直接用于创建字典的工具,但你可以根据匹配的结果动态生成字典。是一种强大的模式匹配工具,可以用于匹配字典中的键值对。你可以根据匹配结果执行不同的逻辑,甚至动态生成新的字典。实现对字典的匹配逻辑。:匹配字典中的键值对。

2025-02-24 12:45:55 376

原创 python 函数中 使用任意数量的关键字实参

可以让函数接收任意数量的关键字参数,这为函数的灵活性和扩展性提供了很大的便利。通过这种方式,你可以编写更通用的函数,同时也能更好地处理动态的输入参数。这种方式允许调用者在函数调用时传递任意数量的命名参数,而函数内部可以动态地处理这些参数。是一个常用的变量名,代表“关键字参数”,但你可以使用任何合法的变量名)来接收任意数量的关键字实参。必须放在函数参数列表的最后,因为它会捕获所有未被前面参数捕获的关键字参数。接收到的是一个字典,你可以在函数内部通过字典的方法(如。在 Python 中,函数可以通过使用。

2025-02-24 10:40:26 206

原创 函数中的形参和实参(吐槽)

在greet_user("zhangsan")中,值“zhangsan”是实参。这本身没什么大问题。直到学习的时候,看到了形参的英语单词是parameter,是“参数;实参的英语是argument是(争论;反正看到英文单词我秒懂,在之前用(形参)(实参)的时候 总是混淆。论据、理由和论点明显就是“实际的例子”(所以叫“实参”?在以上函数中,user_name是形参,所以学好英语对编程学习真的是非常重要。但是这两个概念真的太容易混了。

2025-02-23 21:40:47 122

原创 for循环可遍历但不可以修改列表原因分析

循环是一种遍历列表(或其他可迭代对象)的有效方式,但在遍历过程中直接修改列表的结构(例如添加、删除或修改元素)可能会导致不可预测的行为,甚至引发错误。函数获取列表的迭代器,然后通过迭代器逐个访问列表中的元素。如果在迭代过程中修改了列表,迭代器的行为可能会变得不可预测。如果需要在遍历过程中修改列表,可以使用列表的副本进行迭代,这样不会影响原列表的结构。在迭代过程中,每次循环都会向列表中添加新的元素,导致迭代器不断访问新添加的元素。循环在迭代过程中会依赖列表的固定结构和元素顺序,直接修改列表会干扰迭代过程。

2025-02-23 21:31:00 361

原创 对象的引用(变量)

在实际开发中,如果需要独立的对象,应该使用代码片段 1 的方式。如果需要节省内存且不需要独立修改每个对象,可以使用代码片段 2 的方式。如果修改任何一个字典对象,所有引用该对象的地方都会受到影响。这两个代码片段虽然看起来非常相似,但它们在行为上有一个关键的区别,主要体现在。具体来说,区别在于每次循环时是否创建了新的字典对象。:每次循环创建一个新的字典对象,列表中包含。:始终引用同一个字典对象,列表中包含。,因为它们实际上引用的是同一个对象。,每个对象都是独立的,互不影响。,修改其中一个会影响所有引用。

2025-02-23 21:05:24 320

原创 什么是“可迭代”

理解“可迭代”和“迭代器”的概念是掌握 Python 编程的重要一步,它可以帮助你更高效地处理数据和实现复杂的逻辑。:可迭代对象是 Python 中许多功能的基础,迭代器是可迭代对象的一个特殊版本,它实现了。等,它们都接受可迭代对象作为参数。语句定义的生成器函数返回的对象。方法的对象,或者是一个实现了。来判断一个对象是否是可迭代的。方法来创建自定义的可迭代对象。用于逐个访问可迭代对象中的元素。:打开的文件对象也是可迭代的。:基于可迭代对象生成新的列表。:可以直接遍历可迭代对象。:支持迭代操作的对象,

2025-02-22 22:08:17 347

原创 为什么sort 是永久排序 sorted 是临时排序

是两种用于对数据进行排序的方法,它们在功能上非常相似,但在使用方式和行为上有重要的区别。,它直接在原列表上操作,不需要额外的内存来存储排序结果。:当你需要保留原数据顺序,或者需要对非列表类型(如元组、字典)进行排序时。,用户可以根据需要对排序结果进行进一步处理,而不影响原数据。:当你只需要对一个列表排序,并且不需要保留原列表的顺序时。,原列表的顺序就被永久改变,无法恢复到排序前的状态。:排序结果是一个新的对象,原数据的顺序没有被改变。:返回一个新的排序后的列表,原数据保持不变。

2025-02-22 16:52:59 199

原创 Python中浮点数相加为什么结果的小数位数可能不确定

浮点数相加结果的小数位数可能不确定,主要原因是浮点数在计算机中的二进制表示和计算过程中的舍入误差。了解这一现象对于正确处理浮点数计算和避免精度问题至关重要。

2025-02-22 14:36:02 237

原创 变量名为什么不能以数字为开头

变量名不能以数字开头是为了避免语法歧义、提高代码可读性、保持语言设计的一致性以及简化编译器和解释器的实现。这种规则在大多数编程语言中都被广泛接受和遵循。

2025-02-22 13:24:36 219

原创 pip matplotlib 安装成功后却在pycharm中模块不识别

就需要把前面site-packages中的matplotlib相关文件复制到后者的Lib文件夹中,这样就可以成功在pytharm中加载(这个设定真特么坑死人了,对新手真特么不友好,浪费了几个小时,、真是各种方式都试过了。pip默认按照的路径是C:\Users\username\AppData\Roaming\Python\Python311\site-packages,

2024-08-30 16:47:38 555

原创 pygame库下载了但运行时import pygame一直报错

将该文件夹下的pygame文件直接复制到所运行的python文件的同一级目录中即可完成该库的import。pygame默认下载路径 /usr/lib/python3/dist-packages。运行python文件一直在import pygame报错。pygame这个库下载了,但显示不出来版本号和所在位置。

2024-08-25 02:32:36 259

原创 import pytest 报错显示没有这个模块

PyCharm Community Edition–>Preference–>Tools–>Python Integrated Tools, 把Default test runner换为pytest就可以了,如果显示该解释器中没有,点击后面的fix进行安装。

2024-08-25 01:47:50 302

原创 python运行出现“ takes no arguments”错误原因

1.写成了。

2024-08-24 21:58:27 1029

原创 python学习之pathlib和walk

一、`pathlib` 是 Python 的一个标准库模块,它提供了一系列用于操作文件系统路径的类。`pathlib` 旨在提供一个面向对象的文件系统路径操作接口,使得路径操作更加直观和易于使用。以下是 `pathlib` 的一些关键特性:1. **面向对象的接口**:`pathlib` 中的 `Path` 类提供了一个面向对象的方式来处理文件系统路径。2. **自动处理不同操作系统的路径**:`Path` 对象能够感知运行 Python 的操作系统,并自动使用适当的路径分隔符(例如,在 Win

2024-08-21 17:55:59 1077

c#国外大学教程

国外c#教材。好不容易搞到的。。真正的从零基础学。比国内现有的c#教材好多了。

2013-11-06

makefile经典教程

makefile教程。很详细

2012-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除