Python 极简核心:变量

为Python初学者量身打造:Thonny IDE的极简主义与教学友好性 本文详细介绍了Thonny IDE如何为Python初学者提供极简且教学友好的编程环境。通过对比传统IDE的复杂性,Thonny的轻量级设计、可视化调试工具和智能错误诊断功能显著降低了学习门槛,特别适合新手快速掌握Python编程基础。 阅读详情

0. 变量

首先,一定要理解清楚变量的真正含义:

在Python中,变量是对对象的引用。而赋值操作就是建立一个对象的引用。
In Python, variables are references to objects and any variable can reference any object.

1. 变量的命名

最基本的变量命名规则这里就不讲了,下面记录一些变量命名的一些误区。

  • 使用Python内置函数名作变量名
>>> abs(-10)
10
>>> abs = 10
>>> abs(-10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

2. 变量的命名空间:作用域

变量的命名空间,也叫作作用域。(命名空间=作用域)
主要有以下这几点要注意:

2.1 命名空间的定义

作用域:程序创建、访问、改变一个变量时,都是在一个保存该变量的空间内进行,这个空间为命名空间,即作用域。

python作用域是静态的,变量被赋值、创建的位置决定了其被访问的范围,即变量作用域由其所在位置决定。

2.2 命名空间的前提

Python中,作用域的概念仅仅存在于:当变量在Module(模块)、Class(类)、def(函数) 中定义的时候

理解这一点至关重要! 对于LEGB原则准确、快速的理解很有帮助。

2.3 命名空间的解析机制

LEGB规定了作用域的查找顺序 :
local—>enclosing function locals—>global—>builtin
在这里插入图片描述

Python 的变量名解析机制也称为 LEGB 法则,具体如下: 当在函数中使用未确定的变量名时,Python 搜索 4
个作用域:本地作用域(L),之后是上一层嵌套结构中 def 或 lambda
的本地作用域(E),之后是全局作用域(G),最后是内置作用域(B)
。按这个查找原则,在第一处找到的地方停止。如果没有找到,Python会报错的。

更详细部分总结在:Python:变量的作用域与LEGB原则

3. 变量的创建:赋值

再次强调变量的内涵:
变量是标注(引用),而不是盒子(储存空间)。

  • 变量不是储存对象的盒子,而是贴在对象上的便利贴
  • 是把变量分配给对象,而不是把对象分配给变量

下面介绍变量赋值中容易出bug的几点。

3.1 将”变化的量“赋值给变量

>>> b = 0
>>> a = b
>>> a
0
>>> b = 1
>>> a 
0

变量是一个标记/标注,指向的是内存中具体的值。当我们将一个标记赋值给另一个标记的时候,应该是让其指向另一个标记的内存,而不是指向标记。

即,要注意:将”变量“(可能变化的量)赋值给Python变量时,该Python变量就已经固定不会再变了,除非重新赋值。
在这里插入图片描述

容易出现bug的原因:以为a会随着b发生改变。

3.2 将函数赋值给变量

将函数赋值给变量有两种方式,一不注意很容易出错。

a = f
a = f()

这两种方式到底那种正确?

>>> a = abs
>>> a(-2)
2
>>> b = abs()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: abs() takes exactly one argument (0 given)
>>> b = abs(-1)
>>> b
1

从上面可以看出:

  • a = abs的意思是:将a指向函数abs本身,也即将函数abs本身赋值给变量a
  • b = abs(-1)的意思:将b指向函数的返回值,也即将函数abs(-1)的返回值赋值给变量b

因此,我们就会明白闭包的外部函数返回的是内部函数(而不是带括号的函数返回值)

参考:

  1. Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)…啊啊啊
  2. python中将函数赋值给变量时需要注意的一些问题——值得思考一下
  3. python的变量与赋值
DigitalOcean Functions 极简 Serverless 实战指南 Serverless 是一种按需执行、免运维的函数计算范式,其核心原理是将业务逻辑封装为无状态函数,由平台自动调度、扩缩与托管。技术价值在于显著降低中小项目和自动化任务的部署复杂度与隐性运维成本。典型应用场景包括 Webhook 后端、轻量 API、CI/CD 钩子及内部工具服务。相比通用 FaaS 平台,DigitalOcean Functions 聚焦 HTTP 触发场景,以极简 CLI(doctl)、零配置 TLS 和收敛式设计,实现‘写完即上线’的开发体验,特别适合不希望陷入事件源编排或冷启动调优的 阅读详情

相关推荐

Python基础语法一天速通:从核心概念到实战通讯录项目

编程语言的核心在于其语法规则与数据结构,它们定义了计算机如何理解和执行指令。Python作为一种动态类型、解释型的高级语言,其设计哲学强调代码的可读性和简洁性,通过清晰的语法结构和强大的内置数据结构(如列表和字典)来降低学习门槛。理解变量与对象的引用关系、掌握条件判断与循环控制,是构建程序逻辑的基础。这些基础语法能力在自动化脚本、数据处理和快速原型开发中具有极高的技术价值,能够帮助开发者高效解决日常任务。本文以Python基础语法为核心,通过一个完整的通讯录管理项目实战,串联变量、函数、文件读写等关键概念,

weixin_33226548的博客 283

uv 极简安装指南

本文介绍 uv 的多平台安装、国内 PyPI 与 Python 构建镜像配置,并整理 Python 版本管理、虚拟环境、依赖锁定、常用命令及常见问题,适合想用 uv 替代 pip、virtualenv、pyenv 的开发者快速上手。

san_qilang的博客 363

Python调试核心:用pdb建立与代码的实时对话机制

调试是程序员理解程序行为的基础能力,其本质并非单纯修复错误,而是构建可验证、可交互的代码执行观察机制。Python内置的pdb调试器,作为源码级交互式调试工具,依托极简架构与原生兼容性,提供next/step/print/where等核心命令,支持条件断点、事后回溯、多线程上下文切入等工程化能力。相比图形化IDE调试器,pdb不依赖UI层,可直抵CPython执行底层,在Docker、SSH、CI等无图形环境稳定运行,成为从python零基础入门到微服务线上排障的关键链路。本文深入解析pdb的设计哲学、实操

weixin_33805743的博客 324

从‘小本本’到代码:情侣吵架计数器的极简编程哲学

本文通过情侣吵架计数器的编程实践,阐述了极简主义编程哲学的核心思想:用最少代码实现最多功能,同时保持高可读性和实用性。文章从情感化设计角度出发,探讨了如何将简单需求转化为优雅代码,并展示了Python实现的计数器示例,体现了代码应该像对话一样自然的极简编程理念。

y7z8a9的博客 1156

Python高效学习路径:目标驱动实战,快速掌握核心技能

Python作为一门广泛应用于数据分析、自动化脚本和Web开发的编程语言,其核心价值在于简洁的语法和强大的生态库支持。理解编程语言的基本概念如变量、函数和模块导入是掌握Python的基础,这些元素共同构成了程序的结构化逻辑。从原理上看,Python通过解释器执行代码,结合丰富的第三方库(如pandas、requests)快速实现特定功能,这体现了其“胶水语言”的特性。在技术价值层面,Python能显著提升工作效率,尤其适合处理重复性任务和数据分析场景。应用上,它常见于办公自动化、数据可视化及网络爬虫等实际工

weixin_33937913的博客 322

我精心制作的 python 一小时极简课程来了 ≧◠◡◠≦ 免安装程序+精简核心概念

我精心制作的 python 一小时极简课程来了 ≧◠◡◠≦ 免安装程序+精简核心概念并且不出意外的话,后续的软件我还是会继续使用 python 来写,没有别的原因,单纯就是因为它写起来最简单省力,并且有丰富的第三方库可以让我调用来解决很多实际问题,另外现在大火的 AI, AIGC chatgpt等大模型的代码也全都是 python,况且 python 比其他语言运行慢一点的缺点我完全可以接受,所以,我自己精心做了一个极简教程,来给有需要的朋友做一个 python 入门,

三维点云技术探索 177

【ROS2 】告别多终端!PyCharm + ROS2 极简开发环境配置指南 (IDE 闭环流)

本文介绍了一种简化ROS2开发的配置方案,通过PyCharm实现"IDE内闭环"流程,告别多终端切换的繁琐操作。配置分为三步:1)在外部终端完成初始编译;2)在PyCharm中设置两个运行配置(仿真器和控制节点),需特别注意环境变量配置;3)实现一键启动、调试的闭环开发流程。该方案支持代码修改即时生效,仅当修改项目结构时才需重新编译。文中还提供了常见问题排查方法,如路径检查、环境变量配置等注意事项,帮助开发者提升ROS2开发效率。

qq_72758246的博客 317

我精心制作的 python 一小时极简课程来了 ≧◠◡◠≦ 绝非市面上的妖艳货

用过我的软件的朋友应该知道,目前我发布的所有的软件都是 python 写的,例如:发票批量识别软件点云格式转换软件亲人微信消息记录提取软件批量 WORD-MD 文档中英翻译软件批量 TXT 文本转音频软件点云漫游视频生成软件书写我的人生回忆录 Life Story批量人脸去噪清晰化神器批量音频转文本软件...

三维点云技术探索 138

Kimi 编程语言项目推荐

Kimi 编程语言项目推荐 1. 项目基础介绍和主要编程语言 Kimi 是一个极简的玩具编程语言,由 Anjana Vakil 在 Recurse Center 期间开发。该项目的主要编程语言是 Python 3,旨在通过极简的设计理念,展示编程语言的基本功能和实现方式。Kimi 的设计灵感来自于 Prabhakar Ragde 的演讲,强调了编程语言不需要庞大的功能集,而是可以通过简洁的设计实现...

gitblog_00411的博客 946

告别信号毛刺!手把手教你用ADS和IBIS-AMI模型搞定PCIe Gen3眼图仿真

本文详细介绍了如何使用Keysight ADS和IBIS-AMI模型进行PCIe Gen3眼图仿真,解决高速信号传输中的信号质量问题。从仿真环境搭建、S参数预处理到眼图优化与故障排除,提供了一套完整的工程实践指南,帮助工程师提升PCIe Gen3接口的信号完整性。

weixin_28366053的博客 370

Aider的Repo Map功能

要把整个项目的所有文件添加到 Repo Map 中,需要调整 Aider 的行为,让它扫描整个代码库并将所有文件纳入 Repo Map。在使用 Aider 时,Repo Map 默认只包含当前会话中明确指定的文件(通过命令行传入的。通过命令行将整个项目的文件列表传递给 Aider,使其初始化时包含所有文件。,让 Aider 在初始化时自动加载整个项目的文件到。如果你的项目是 Git 仓库,Aider 可以通过。在 Aider 的交互模式中,手动添加整个项目文件。,从而生成包含所有文件的 Repo Map。

qq_41638872的博客 1638

大模型应用极简开发快速入门,大模型入门到精通,收藏这篇就足够了!

本次开一篇文章具体介绍我们上次使用到的一些开发生态库当中的功能,以及用法,也会提到为什么用这些库的原因,还有这些生态库都有哪些缺点和优点,后续我们应该使用什么方式去改进。

huang9604的博客 1033

STK中的传感器与通信组件:雷达、发射机、接收机与天线的协同建模

本文深入解析了STK软件中传感器、雷达、发射机、接收机与天线的协同建模方法。通过构建一个完整的卫星对地数传系统实例,阐述了各组件如何分工协作,实现从几何指向到射频链路的高保真仿真,为复杂航天通信与探测系统的设计与分析提供了高效、灵活的解决方案。

weixin_29271263的博客 273

Python快速入门:10分钟掌握环境搭建、核心语法与实用脚本

编程语言作为人机交互的桥梁,其核心在于将人类逻辑转化为计算机可执行的指令。Python以其简洁的语法和强大的生态,成为初学者入门编程的首选。理解其工作原理,从环境配置开始:通过命令行安装官方解释器并正确设置PATH环境变量,是确保Python和包管理工具pip正常运行的基石。掌握变量、列表、字典、控制流和函数等核心语法,如同学习一门新语言的词汇和句型结构,是构建程序逻辑的基础。这种快速上手的能力,在数据分析、自动化脚本和Web开发等应用场景中极具价值。本文以【pip包管理】和【命令行】为切入点,通过一个计算

weixin_33874713的博客 330

从HSPICE到Spectre:手把手教你搞定不同SPICE仿真器的网表转换(附避坑指南)

本文详细介绍了从HSPICE到Spectre的SPICE仿真器网表转换方法,包括核心语法差异、分步转换流程和常见问题排查。通过实战案例和避坑指南,帮助工程师高效解决不同SPICE仿真器间的兼容性问题,提升集成电路设计效率。

weixin_29745609的博客 368

第1.1节 构网型 vs. 跟网型:根本区别与技术原理

构网型与跟网型变流器的本质区别在于控制哲学与等效模型。跟网型变流器采用"电压跟随,电流注入"策略,等效为受控电流源,依赖电网电压作为参考,在弱电网下存在稳定性问题。构网型变流器采用"自主同步,电压构建"策略,等效为受控电压源,能主动构建电压和频率,具备自主运行、黑启动和电网支撑能力。两者的核心差异体现在同步机制、电网依赖性、故障行为和系统支撑等方面。构网型变流器更适合高比例新能源、弱电网和微电网场景,是未来电力系统的重要发展方向。

技术工作者 1396

REA 逆向工程工具指南:对比 Hopper、Ghidra、IDA 的编排层选型

如果你在纠结反汇编器选型,先看这篇。[REA](https://link.gitcode.com/i/7252007323afed0b1993508146f2730b)(Reverse Engineer Anything)是一个面向 Agent 的逆向工程 MCP 服务加 CLI:它把 Hopper、Ghidra、IDA 这类反汇编引擎接进来统一调度,再叠加 JavaScript/Electron

gitblog_00449的博客 330

踩坑记录:Clawdbot 对接 Minimax 报错 “401 token is unusable (1004)“ 的终极解决方案

如果你也在配置 Clawdbot 对接 Minimax 模型时,明明 API Key 是新申请的,却死活报错 `401 Unauthorized`,错误码 `1004`,提示 `token is unusable`——那么恭喜你,来对地方了。

hampeter的博客 2001

终极指南:揭秘Python日志库Loguru的10大核心机制与实战应用

Loguru是一款让Python日志记录变得极其简单的流行库,它通过直观的API设计和强大的功能特性,彻底改变了开发者处理日志的方式。本文将深入剖析Loguru的10大核心机制,帮助你快速掌握这个强大工具的内部工作原理和最佳实践。 ## 🚀 1. 极简日志API设计:告别复杂配置 Loguru的核心优势在于其极简的API设计。与Python标准logging模块需要繁琐的配置不同,Logur

gitblog_00849的博客 643

PowerDesigner 数据库建模使用详解

PowerDesigner 数据库建模使用详解

congge 7082

基于物联网设计的蜂箱智能监测系统设计

为解决传统养蜂业依赖人工、管理效率低下、干扰蜂群等问题,本项目设计并实现了一套基于物联网(IoT)的蜂箱智能监测系统。

685

Thonny IDE:专为Python初学者设计的轻量级开发环境

Thonny IDE是一款专为Python初学者设计的轻量级开发环境,通过极简界面和内置调试工具降低学习门槛。文章详细介绍了Thonny的安装配置、核心功能如变量追踪器和错误预防系统,以及从入门到进阶的实战路径,帮助新手快速掌握Python编程。

fern8的博客 556

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python调试核心技能:掌握pdb交互式调试器的实战指南

pdb是Python内置的交互式调试器,基于Python运行时底层机制,提供对程序执行流的精细控制。其原理在于中断解释器、接管输入输出,构建与当前作用域完全共享的调试环境。相比print调试的快照式、侵入式和单向性缺陷,pdb以实时性、无痕性和交互性实现质的飞跃,显著提升问题定位效率。技术价值体现在服务器运维、容器调试、异常溯源及单元测试集成等关键工程场景。本文聚焦pdb的四种主流接入方式(breakpoint插入、命令行启动、post_mortem事后分析、unittest集成)与六大核心命令(n/s/c

415

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Python零基础入门:避开常见误区,5分钟上手实战编程

编程语言作为人机交互的核心工具,其本质是将人类逻辑转化为计算机可执行的指令。Python凭借简洁的语法和丰富的生态,成为初学者入门编程的理想选择。理解变量、函数、控制流等基础概念,是掌握编程原理的关键。这些技术价值在于能够自动化处理重复任务,提升工作效率,广泛应用于数据分析、网络爬虫、自动化办公等场景。本文针对新手常见的学习痛点,如环境配置复杂、语法记忆孤立等,提供了一条最小阻力路径,通过场景驱动的微任务和即时反馈练习,帮助读者快速建立Python编程直觉,并完成批量文件重命名等实用项目,实现从理论到实践的

weixin_33912453的博客 930

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python一日速成:从零基础到实战脚本的完整学习路径

编程语言的核心在于其语法规则和数据结构,它们构成了程序逻辑的基石。理解变量、函数、循环等基础概念是掌握任何一门语言的起点。Python以其简洁明了的语法和强大的内置数据结构,显著降低了学习门槛,提升了开发效率,在自动化脚本、数据分析、Web开发等场景中广泛应用。本文聚焦于Python核心语法,通过精心设计的“一天学完”学习路径,帮助学习者快速构建知识框架,并最终完成一个综合性的通讯录管理脚本实战,串联变量、循环、函数、文件操作等关键知识点,实现从理论到实践的跨越。

weixin_33417488的博客 235

为什么 AI 产品越来越难用?聊聊极简设计的得与失

极简 AI 产品设计的核心不是“少做功能”,而是“将复杂性从用户侧转移到系统侧”。三层隐式智能模型(用户层 → 推断层 → 执行层)提供了一种系统性的设计框架,让用户只需表达意图,系统自动推断上下文并选择最优策略。但极简设计有其边界:推断错误时用户缺乏纠正手段,隐式反馈涉及隐私合规,专业用户需要精确控制而非自动推断。落地的关键是在极简与可控之间找到动态平衡——默认极简,按需展开高级选项,让不同层次的用户都能获得匹配的体验。

weixin_63764436的博客 5619
上一篇: Python 极简核心:对象
下一篇: Python 极简核心:数据类型
Robin_Pi
博客等级 码龄9年 2万+粉丝 632原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值