python
文章平均质量分 78
谷晓光
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python中while 1和while True有何区别?深入解析无限循环的写法选择
*结论**:在Python开发中,优先使用`while True`来编写无限循环。PEP 8(Python代码风格指南)建议:**用显式的代码表达明确的语义**。| **维度** | **while 1** | **while True** |2. **减少误解**:新手可能对`while 1`的原理感到困惑,而`while True`一目了然。3. **一致性**:与`if True`、`bool(1)`等写法保持逻辑一致。原创 2025-05-27 11:15:39 · 897 阅读 · 0 评论 -
在PyCharm中使用pyenv指定的Python:配置指南
本文详细介绍了如何在PyCharm中配置使用pyenv管理的Python版本。首先需要安装pyenv并添加所需Python版本,然后在PyCharm设置中选择对应的Python解释器路径。文章提供了配置步骤、验证方法和常见问题解决方案,帮助开发者轻松实现多版本Python环境管理,提高开发效率。原创 2025-05-25 11:11:06 · 1862 阅读 · 0 评论 -
在Mac中使用pyenv管理Python版本:从安装到虚拟环境的全流程指南
pyenv` 是一款轻量级的Python版本管理工具,支持**多版本共存**、**虚拟环境创建**和**全局/局部版本切换**,尤其适合Mac和Linux系统。- **解决**:检查`.zshrc`或`.bashrc`中是否添加`pyenv`路径,并执行`source ~/.zshrc`。2. **固定Python版本**:通过`pyenv local`在项目根目录指定版本,确保团队环境一致。- **说明**:正常现象!- `3.10.11`:通过`pyenv`安装的版本,带`*`表示当前激活版本。原创 2025-05-24 15:47:09 · 2805 阅读 · 0 评论 -
Python项目文件组织与PyCharm实践:打造高效开发环境
以一个简单数据分析项目为例,假设项目涉及数据处理、模型训练和结果可视化,在`src` 目录下创建对应模块文件夹,如`src/data` (含`loader.py` 、`cleaner.py` 等)、`src/models` (含`trainer.py` 、`predictor.py` 等)、`src/visualization` (含`plots.py` )。放置项目配置文件,支持`.ini` 、`.yaml` 、`.json` 等格式,按需存储数据库连接、API密钥等配置信息。原创 2025-05-22 21:58:35 · 719 阅读 · 0 评论 -
如何查看Python内置函数列表
**输出说明**:结果包含内置函数、类、异常等名称,其中以小写字母开头的通常是函数(如`abs`、`len`),大写开头的多为类或异常(如`list`、`TypeError`)。- **过滤搜索**:输入关键词(如`str`)可快速定位相关函数(如`str.lower()`、`str.split()`)。- **内置函数**:直接隶属于Python解释器,无需导入即可使用(如`len()`、`type()`)。每个函数名对应一个详细章节,如`abs()`、`all()`、`dict()`等。原创 2025-05-20 20:32:47 · 1877 阅读 · 0 评论 -
深入理解pip:Python包管理的核心工具与实战指南
在实际项目中,建议结合`requirements.txt`文件和虚拟环境(如`venv`或`conda`),实现更高效的依赖管理。`pip install`是`pip`最核心的命令,用于从PyPI(Python包索引)或其他源安装库。**场景**:当项目需要兼容特定版本的`flask`或`numpy`时,精确版本控制可避免兼容性问题。**作用**:删除`pip`下载的缓存包(默认位于`~/.cache/pip`),释放磁盘空间。## 三、`pip list`与`pip freeze`:管理依赖的“仪表盘”原创 2025-05-19 22:14:22 · 487 阅读 · 0 评论 -
Python 从列表中删除值的多种实用方法详解
`clear()` | O(1) | O(1) | 清空列表所有元素 || `remove(value)` | O(n) | O(1) | 按值删除第一个匹配项 || `pop(index)` | O(n) | O(1) | 按索引删除,返回元素值 |删除指定索引位置的元素,并**返回该元素的值**。适合需要保留原始数据的场景。原创 2025-05-18 19:29:11 · 1561 阅读 · 0 评论 -
Python 中 `__init__` 方法的深入解析
在这个示例中,`Person` 类定义了 `__init__` 方法,它接收 `name` 和 `age` 两个参数。当我们创建 `Person` 类的实例 `p` 时,Python 会自动调用 `__init__` 方法,并将 `"张三"` 和 `25` 作为参数传递给它。需要注意的是,`__init__` 方法并非构造函数。当创建 `MyClass` 类时,`MyMeta` 的 `__init__` 方法会被调用,为 `MyClass` 类添加了一个自定义属性 `custom_attribute`。原创 2025-04-12 13:11:00 · 712 阅读 · 0 评论 -
Python 中 main 函数:代码结构与组织的关键
通过 `args = parser.parse_args()` 获取用户在命令行输入的参数后,`main` 函数根据不同的参数值调用 `process_file` 函数并传入相应的参数,从而实现根据用户需求对文件进行不同方式的处理。在 `main` 函数中,我们可以轻松地设置测试数据(如 `num1 = 5` 和 `num2 = 3`),然后调用库中的函数(`add_numbers` 和 `multiply_numbers`)进行计算,并输出结果。`main` 函数是处理命令行参数的理想场所。原创 2025-04-09 21:20:06 · 862 阅读 · 0 评论 -
Python 中的不可变数据类型的解析
Python 中的不可变数据类型包括数字类型(`int`、`float`、`complex`)、字符串(`str`)、元组(`tuple`)和冻结集合(`frozenset`)。当我们将 `a` 的值从 `10` 改为 `20` 时,`a` 的内存地址发生了改变,这表明我们创建了一个新的整数对象。这里,当我们将 `b` 的值从 `3.14` 改为 `2.71` 时,`b` 的内存地址也发生了变化,说明创建了新的浮点数对象。但实际上,我们创建了一个新的字符串对象,`s` 的内存地址也随之改变。原创 2025-03-27 15:54:20 · 738 阅读 · 0 评论 -
Python中`nonlocal`关键字:深入解析与实践应用
inner_function`通过`nonlocal`声明,表明它要修改的`outer_variable`是外层函数中的那个变量,而非创建一个新的局部变量。这里,`counter`函数返回一个闭包`increment`。`increment`函数使用`nonlocal`修改外层函数的`count`变量,从而实现了一个简单的计数器功能。在这个状态机示例中,`transition`函数根据当前的`state`值进行状态转换,并通过`nonlocal`修改`state`,确保状态机的状态能够正确更新。原创 2025-03-26 07:32:09 · 1262 阅读 · 0 评论 -
Python 变量作用域、global 关键字与闭包作用域深度解析 第三部分
在这个例子中,`count` 变量被封装在 `counter` 函数的作用域内,外部无法直接访问和修改它,只能通过 `increment` 函数来对其进行操作。在这个例子中,`multiplier` 函数返回一个闭包 `multiply`,闭包保存了 `factor` 的值。闭包可以将一些通用的逻辑封装在外部函数中,通过传入不同的参数来创建不同的闭包,从而实现代码的复用和灵活性。闭包可以把数据封装在外部函数的作用域中,只有内部函数能够访问这些数据,这有助于实现数据的隐藏和保护。原创 2025-03-24 19:34:28 · 941 阅读 · 0 评论 -
Python 变量作用域、global 关键字与闭包作用域深度解析 第二部分
在这个例子中,`modify_global_list` 函数内部使用 `append` 方法对全局列表 `global_list` 进行了原地修改,由于没有对 `global_list` 进行重新赋值,因此不需要使用 `global` 关键字。在这个例子中,`inner` 函数内部的 `print(x)` 语句会先在局部作用域查找 `x`,找到局部变量 `x` 的值为 `30` 并输出。内置作用域是 Python 内置函数和内置对象所在的作用域,这些函数和对象在任何地方都可以直接使用,无需导入任何模块。原创 2025-03-21 12:51:17 · 809 阅读 · 0 评论 -
Python 变量作用域、global 关键字与闭包作用域深度解析 第一部分
在 Python 编程中,理解变量的作用域、`global` 关键字的使用以及闭包作用域的概念至关重要。当我们在函数内部想要修改全局变量的值时,就需要使用 `global` 关键字进行声明。若不声明,在函数内部给变量赋值会创建一个新的局部变量,而不是修改全局变量。print(x, y) # 输出 10 20,全局变量 x 和 y 的值已被修改。不过,在实际编程中,过度使用全局变量可能会让代码的可维护性变差,因此建议谨慎使用。print(count) # 输出 1,全局变量 count 的值已被修改。原创 2025-03-20 19:09:19 · 602 阅读 · 0 评论 -
Python 中下划线 “_” 的多面性:从变量到约定
这样,即使`Child`类定义了同名的变量或方法,也不会与父类的`__private_variable`产生冲突,从而保证了类的封装性和继承体系的稳定性。这里,我们只关心`10`除以`3`的商,而余数对于当前逻辑并无用处,使用下划线接收余数,让代码简洁明了,同时也避免了创建一个无意义的变量名。在Python中,以单下划线开头的变量或方法通常被视为私有成员。在这个例子中,下划线“_”作为循环变量,仅仅是为了满足`for`循环的语法要求,它并不代表任何实际数据,我们更关注的是循环体中的操作会被执行5次。原创 2025-03-19 21:10:24 · 1161 阅读 · 0 评论 -
Python F-String 深度解析:原理、用法与最佳实践
相较于 `%` 格式化和 `str.format()`,F-String 的执行速度快约 20%,因为它减少了中间对象的创建。1. **优先使用 F-String**:替代 `%` 格式化和 `str.format()`| 浮点数精度 | `f"{3.1415:.2f}"` | `3.14` |- **特殊场景**:仅在与现有代码风格保持一致时使用 `F`- **官方推荐**:PEP 498 建议使用小写 `f`- **社区习惯**:小写 `f` 占比超过 95%原创 2025-03-18 22:29:05 · 1356 阅读 · 0 评论 -
python中print函数的flush如何使用
在 Python 中,`print` 函数的 `flush` 参数是一个布尔值,默认值为 `False`。在上述例子中,使用 `flush=True` 可以确保提示信息 `Please enter your name: ` 立即显示在控制台,让用户能够及时看到并输入信息。在交互式程序中,当你需要在用户输入前显示提示信息时,使用 `flush=True` 可以确保提示信息立即显示,避免用户等待。在一些需要实时显示日志信息的场景中,使用 `flush=True` 可以确保日志信息及时显示。原创 2025-03-16 22:38:46 · 2462 阅读 · 0 评论 -
关于python的print函数的大对象输出
## 在 Python 中,`range(10**9)` 所占用的内存大小取决于 Python 版本,因为不同版本对 `range` 对象的实现方式有所不同,下面分别介绍 Python 2 和 Python 3 中 `range(10**9)` 的内存占用情况。通常情况下,`range` 对象占用的内存大小可能只有几十到几百字节,远小于 Python 2 中 `range` 函数生成的列表所占用的内存,但是在实际上python3在使用的时候依然要分配那么大的内存,只是分配的时机不同。原创 2025-03-15 09:02:01 · 900 阅读 · 0 评论 -
python中print函数入门
**`end`**:它表示输出结束时要添加的字符串,默认值是换行符(`'\n'`)。- **`file`**:此参数指定了输出的目标文件对象,默认值是 `sys.stdout`,也就是标准输出设备(控制台)。- **`flush`**:这是一个布尔值参数,用于指定是否强制刷新流。- **`sep`**:该参数用于指定多个对象之间的分隔符,默认值是一个空格(`' '`)。输出结果为 `1-2-3...4 5 6`,第一个 `print()` 函数使用 `-` 作为分隔符,用 `...` 作为结束符。原创 2025-03-14 14:14:39 · 511 阅读 · 0 评论 -
python中date模块的功能和常用方法
在 Python 里,`date` 模块属于 `datetime` 标准库,其主要功能是处理日期相关的操作。#### 3. `date.replace(year, month, day)`:替换日期中的年、月、日。#### 1. `date(year, month, day)`:创建 `date` 对象。- **日期格式化**:能将日期按照指定格式输出为字符串,也可把字符串解析成日期对象。- **日期计算**:支持日期的加减运算,便于计算两个日期之间的差值。- **日期表示**:可精准表示年、月、日信息。原创 2025-03-12 20:33:38 · 635 阅读 · 0 评论 -
python中time模块的常用方法及应用
**功能**:将一个时间戳(可选参数,默认为当前时间戳)转换为 UTC 时间的 `struct_time` 对象。- **功能**:将一个 `struct_time` 对象(可选参数,默认为当前本地时间)按照指定的格式转换为字符串。- **功能**:将一个时间戳(可选参数,默认为当前时间戳)转换为本地时间的 `struct_time` 对象。- **应用场景**:在需要将用户输入的时间字符串或从文件中读取的时间字符串转换为可处理的时间对象时使用。原创 2025-03-11 20:20:37 · 875 阅读 · 0 评论 -
python中如何把dataframe转换为列表及其性能比较
在处理较小规模的DataFrame时,`values`属性和`to_numpy()`方法的性能相近,都相对高效,因为它们底层都是基于NumPy数组进行操作,并且转换过程较为直接。从pandas 0.24版本开始可用,先使用`to_numpy()`方法将DataFrame转换为NumPy数组,再通过`tolist()`方法转换为列表。先通过`values`属性将DataFrame转换为NumPy数组,然后再调用`tolist()`方法将数组转换为列表。'名字': ['小明', '小红', '小张'],原创 2025-03-10 23:33:46 · 1198 阅读 · 0 评论 -
python如何把多维列表转换为dataframe
通过以上示例可以看出,将多维列表转换为 `DataFrame` 的关键在于将其转换为合适的二维形式,以便于使用 `pandas` 的 `DataFrame` 构造函数进行转换。- `pd.DataFrame(two_d_list)`:使用 `pandas` 的 `DataFrame` 构造函数将二维列表转换为 `DataFrame`。二维列表是最常见的多维列表形式,可将其看作表格数据,每一行对应 `DataFrame` 中的一行,每一列对应 `DataFrame` 中的一列。展开三维列表为二维列表。原创 2025-03-09 11:54:18 · 796 阅读 · 0 评论 -
python多维列表简述
可以理解为多个三维列表组成的集合,常用于处理一些具有更复杂结构的数据,如在处理视频数据时,若将视频看作是由多个帧组成,每个帧是一个三维的图像数据(包含高度、宽度和颜色通道),那么整个视频就可以用四维列表来表示,其中第四维可以表示时间维度上的帧序列。在实际应用中,还可能会遇到更高维度的列表,但随着维度的增加,数据的理解和处理难度也会急剧上升,通常需要结合具体的业务场景和数据特点来选择合适的数据结构。其形式是列表中的每个元素也是一个列表,每个子列表的长度可以相同,也可以不同。它是列表的列表的列表。原创 2025-03-08 15:42:56 · 1161 阅读 · 0 评论 -
python中如何把list转换为dataframe之一维列表
关于dataframe与list的互相转换,要从两个角度不同维度去讲,一个是如何把list转换为dataframe,另一个是把dataframe转换为list。同时要考虑list的维度、dataframe的不同形状。先讲如何把list转换为dataframe。原创 2025-03-07 22:29:07 · 1514 阅读 · 0 评论 -
python 使程序随机休眠几秒钟
random.gauss(mu, sigma)`会生成一个符合正态分布的随机浮点数,其中`mu`是均值,`sigma`是标准差。如果你想让程序在一个指定的时间范围内随机休眠,可以使用`random.uniform()`函数(用于生成浮点数)或`random.randint()`函数(用于生成整数)来生成随机的休眠时长。在 Python 中,可以使用`time`模块的`sleep`函数来让程序休眠指定的时间,结合`random`模块来生成随机的休眠时长。print("程序休眠结束,继续执行")原创 2025-03-06 15:44:13 · 1157 阅读 · 0 评论 -
python如何遍历一个dataframe的第指定列
**使用 `apply()` 方法**:可以对列数据进行更复杂的操作,通过定义不同的函数来实现不同的功能,但在简单遍历场景下略显繁琐,但是如果在要在遍历的过程中,实现更加复杂的功能,可以使用apply()。- **使用 `itertuples()` 方法**:性能比 `iterrows()` 好,因为它返回的是 `namedtuple` 对象,内存占用少,迭代速度快。- **使用 `for` 循环遍历 `Series`**:代码简洁,适用于简单的遍历操作,性能相对较好。也可以通过索引访问,索引从。原创 2025-03-05 20:19:40 · 1070 阅读 · 0 评论 -
pandas如何在指定位置添加一个dataframe
如果`df1`和`df2`的行数或列数不匹配,可能需要根据具体情况进行调整,比如使用`reindex`方法来对齐索引等。在`pandas`中,可以使用`concat`函数结合索引操作等在指定位置添加一个`DataFrame`。假设有两个`DataFrame`,`df1`和`df2`,要将`df2`按行添加到`df1`的指定位置`n`。首先将被插入的的dataframe分成两份,然后使用concat方法将三个dataframe连接到一起。如果要将`df2`按列添加到`df1`的指定位置`m`。原创 2025-03-04 21:48:09 · 790 阅读 · 0 评论 -
RuntimeWarning: invalid value encountered in scalar power在进行标量的幂运算时遇到了无效值
2. **除以零**:如果 `initial_cash` 为 `0` ,那么 `profit / initial_cash` 会得到 `inf`(无穷大)或者当 `yy` 为 `0` 时,`1 / yy` 也会得到 `inf` ,后续的幂运算就可能出现无效值情况。但是在复数范围内是可以表示的,例如在复数范围内-4的平方根是2i和-2i。3. **数据类型问题**:如果 `profit`、`initial_cash` 或 `yy` 的数据类型不合适,导致运算结果不准确,也可能引发该警告。原创 2025-02-27 20:13:24 · 1290 阅读 · 0 评论 -
pandas如何在dataframe上再添加一个dataframe
表示重新生成连续的索引。如果想要按列方向连接,即将。如果想要根据特定列进行合并,可以使用。上述代码中,默认根据索引进行合并,方法可以根据索引或指定的键将两个。连接在一起,默认是按行方向(进行合并或连接操作,主要有。函数用于根据指定的键将两个。函数可以沿着指定轴将多个。分别是左右连接,保留两个。表示采用外连接的方式,)进行连接,即将一个。函数按行方向连接两个。方法根据索引进行合并。原创 2025-02-26 21:46:09 · 766 阅读 · 0 评论 -
pandas如何添加列
如果要添加的列是一个常量值或者可广播的序列,可以直接通过索引赋值的方式添加新列。方法可以在指定位置插入新列。的情况下添加新列,并返回一个新的。添加一个基于现有列计算的新列。方法可以在不修改原始。创建要插入的新列数据。原创 2025-02-25 20:26:11 · 672 阅读 · 0 评论 -
pandas的dataframe如何在指定位置添加行
拆分成两部分,再将需要添加的行与这两部分进行连接。进行重新索引,可以通过重新索引在指定位置插入行。的末尾,结合起来可以在指定位置添加行。表示重置索引,丢弃原来的索引。索引器可以按标签选择数据,方法可以将一行或多行添加到。函数可以沿着指定轴将多个。连接在一起,可以先将原。中,可以使用以下方法。函数将三部分连接起来。的索引,为生成的新的。原创 2025-02-24 19:43:45 · 1343 阅读 · 0 评论 -
dataframe如何在末尾添加多行
中添加多行该如何实现?可通过以下常见方式在。索引器分两次操作来添加两行数据。,默认)合并在一起,并重置索引,从而在原。,从而实现添加行的效果。,要添加的两行数据分别存储在字典。方法(旧版本支持,新版本已不推荐。这里先创建了一个包含两行数据的。方法将包含两行数据的新。末尾添加了两行数据。原创 2025-02-23 23:02:15 · 1000 阅读 · 0 评论 -
pandas 如何在末尾添加一行
pandas 1.4.0之后不再使用append方法)方法(在旧版本中,以后不推荐使用)在。的尾部添加一条新行数据,使用方法是。方法(旧版本支持,新版本已不推荐。中已不推荐使用,建议优先使用。,要添加的数据存储在字典。这里将新行数据表示为。原创 2025-02-22 14:10:44 · 1207 阅读 · 0 评论 -
python查错误TypeError: bad operand type for unary -: ‘str‘
在这个示例中,首先使用 int(num_str) 将字符串 "10" 转换为整数 10,然后对整数应用一元减号运算符,得到结果 -10。这里使用 float(num_str) 将字符串 "3.14" 转换为浮点数 3.14,再应用一元减号运算符,得到结果 -3.14。在这个示例中,字符串 "abc" 无法转换为数值类型,因此会触发 ValueError 异常,执行 except 块中的代码,输出错误信息。原创 2025-02-20 22:50:39 · 1909 阅读 · 0 评论 -
matplotlib 如何是的横坐标纵向显示
在 中,若要让横坐标标签纵向显示,可以使用 或 方法结合旋转参数来实现。原创 2025-02-19 23:51:08 · 816 阅读 · 0 评论 -
pypthon字符串与日期转换
可使用datetime模块将字符串转换为日期类型,使用datatime 的strptime方法时候需要指定日期格式。指定日期格式:根据日期字符串的格式,定义对应的日期格式字符串。例如,日期字符串为"2024-12-12",对应的日期格式字符串为"%Y-%m-%d"。%H:24 小时制的小时数(00 - 23)%I:12 小时制的小时数(01 - 12)%m:两位数的月份表示(01 - 12)%Y:四位数的年份表示(如 2024)%d:两位数的日表示(01 - 31)%y:两位数的年份表示(如 24)原创 2025-02-17 22:46:14 · 1025 阅读 · 0 评论 -
昇思MindSpore学习心得入门-网络构建
当我们定义神经网络时,可以继承nn.Cell类,在__init__方法中进行子Cell的实例化和状态管理,在construct方法中实现Tensor操作。构建完成后,实例化Network对象,并查看其结构。构造一个输入数据,直接调用模型,可以获得一个二维的Tensor输出,其包含每个类别的原始预测值。在此基础上,我们通过一个nn.Softmax层实例来获得预测概率。原创 2024-06-29 22:35:58 · 468 阅读 · 0 评论 -
python的random模块三choices和shuffle()
cum_weights:可选参数。必须是一个数字序列,长度必须和population相同。表示累计权重,即前n个元素被选中的概率,如果指定了cum_weights,那么不能同时指定weights。weights:可选参数。必须是一个数字序列,长度必须和population相同。表示每个元素被选中的概率,可以是小数,但必须大于等于0。population:必须是一个序列,可以是列表,元组,字符串等等。表示要选取的元素个数,默认值是1。随机生成序列,每一个数字出现的概率都是。,其他数字被选中的概率是。原创 2024-06-15 14:07:01 · 926 阅读 · 0 评论 -
random模块二
step -- 可选, 一个整数,指定步长,默认值为 1。start -- 可选, 一个整数,指定开始值,默认值为 0。从列表list1中随机选择一个元素: 1。从列表list1中随机选择一个元素: 2。从列表list1中随机选择一个元素: 2。从列表list1中随机选择一个元素: 1。从列表list1中随机选择一个元素: 2。从字符串中随机选择一个元素: h。指定起止位置和步长: 32。指定起止位置和步长: 22。指定起止位置和步长: 37。指定起止位置和步长: 7。指定起止位置和步长: 7。原创 2024-06-06 23:23:59 · 523 阅读 · 0 评论
分享