从零开始:Python语言基础之变量

Python---变量与常量、数值类型 变量名=value举例:number=8栈内存中存入number,堆内存中存入8,栈内存中的变量名number指向堆内存空间。注意:在Python中允许多个变量指向同一个值。结果numb与number内存地址相同。 阅读详情

一、变量的本质与核心机制

 

在Python编程体系中,变量并非传统意义上的数据存储容器,而是对象的引用。这一特性构成了Python动态类型系统的基础,理解其工作机制对后续编程至关重要。

 

1.1 变量与对象的绑定过程

 

当执行 x = 5 时,Python解释器会完成以下操作:

 

1. 创建对象:在内存中生成一个值为 5 的整数对象

2. 建立引用:将变量名 x 与该对象的内存地址进行绑定

3. 数据访问:后续通过 x 操作数据时,实际上是通过引用找到对应内存地址的对象

 

可使用 id() 函数查看对象内存地址:

x = 5
print(id(x))
# 输出类似:2192283644496,不同环境下地址不同

若执行 y = x ,此时 y 与 x 成为同一对象的不同引用:

 
x = 5
y = x
print(id(x) == id(y))  # 输出True

当 x 重新赋值时,它会绑定到新的对象,而 y 仍指向原对象:


x = 5
y = x
x = 6
print(y)  # 输出5
print(id(x) == id(y))  # 输出False
 

1.2 垃圾回收与变量引用

 

当变量不再引用对象(如超出作用域或重新赋值)时,Python的垃圾回收机制会自动释放对象占用的内存:

 
x = [1, 2, 3]  # 创建列表对象
x = None  # x不再引用列表,触发垃圾回收

二、变量命名规范与常见错误

 

2.1 基础命名规则

 

①字符限制:只能包含字母、数字和下划线(如 my_variable 、 user123 )

②禁止数字开头: 1test 是非法命名,应改为 test1 

③大小写敏感: MyVar 与 myvar 是不同变量

 

2.2 关键字与保留字

 

Python保留35个关键字(如 if 、 for 、 class ),禁止用作变量名:

# 错误示例
if = 10  # 引发SyntaxError

2.3 推荐命名风格

 

①PEP8规范:

②变量:小写字母 + 下划线( max_length )

③常量:全大写字母( PI = 3.14159 )

④避免内置函数冲突:

print = 10  # 覆盖内置函数,导致报错

 

三、动态类型系统特性与实践

 

3.1 变量的动态类型特性

 

Python变量类型由所引用对象决定,且可动态改变:

x = 10  # int类型
x = "hello"  # 变为str类型
x = [1, 2, 3]  # 变为list类型
 

3.2 类型检查与转换

 

①类型检查:

x = 5
print(type(x) == int)  # 输出True
print(isinstance(x, int))  # 输出True

②类型转换:

num_str = "123"
num = int(num_str)  # 转换为整数

3.3 常见类型错误及解决

 

①类型不匹配错误:

def add(a, b):
    return a + b
result = add("5", 10) 
# 引发TypeError

解决方案:

①使用 isinstance() 进行类型检查

②强制类型转换确保一致性

 

四、变量作用域:访问规则详解

 

4.1 局部变量与全局变量

 

①局部变量:在函数内部定义,仅在函数内可见

def func():
    local_var = 10
    print(local_var)
func()
# print(local_var)  # 报错:变量未定义

②全局变量:在函数外定义,默认在函数内只读,修改需用 global 关键字

global_var = 20
def modify():
    global global_var
    global_var = 30
modify()
print(global_var)  # 输出30

4.2 嵌套作用域与LEGB规则

 

Python按LEGB顺序查找变量:

 

1. Local:局部作用域

2. Enclosing:嵌套函数的外层作用域

3. Global:全局作用域

4. Built-in:内置作用域

x = "global"
def outer():
    x = "enclosing"
    def inner():
        x = "local"
        print(x)
    inner()
outer()  # 输出local

4.3 闭包与nonlocal关键字

 

闭包允许内部函数访问并保存外层函数的变量:

 
def outer():
    outer_var = 10
    def inner():
        nonlocal outer_var
        outer_var += 1
        return outer_var
    return inner

closure = outer()
print(closure())  # 输出11
print(closure())  # 输出12
 

 五、变量使用的最佳实践

 

5.1 数据处理场景

# 计算列表元素平方和
numbers = [1, 2, 3, 4, 5]
sum_squares = 0
for num in numbers:
    sum_squares += num ** 2
print(sum_squares)  # 输出55
 

  

5.2 逻辑控制场景

# 使用标志变量控制循环
found = False
data = [10, 20, 30]
target = 20
for element in data:
    if element == target:
        found = True
        break
if found:
    print("目标值已找到")
else:
    print("目标值未找到")
 

 5.3 函数调用场景

 
# 函数参数传递与返回值接收
def area(length, width):
    return length * width

rect_length = 5
rect_width = 3
result = area(rect_length, rect_width)
print(result)  # 输出15

六、常见问题与解决方案

 

1. 变量名拼写错误:利用IDE的语法检查功能

2. 作用域混淆:合理使用 global / nonlocal 关键字

3. 类型错误:

①添加类型注释(Python 3.5+)

 

def add(a: int, b: int) -> int:
    return a + b

 

②使用 try-except 捕获类型异常

 

通过系统掌握变量的核心概念、使用规范及常见问题解决方案,开发者能够编写出更规范、高效的Python代码。变量作为编程的基础单元,其应用能力直接影响后续复杂程序的设计与实现,建议通过大量实践巩固相关知识。

从零开始的Python计划 #1.1 文章目录一,脚本模式和交互模式的区别二,使用Python line 探索数学计算三,变量 ,字符串表达式1·变量variable2·字符串四,创建第一个脚本五,执行多行内容六,注释 我来开始更新序章了!谢谢各位的支持,第一篇博客在一天内访问破900了! 这一篇是真正意义上从零开始!就是完完全全零基础开始学的知识,也希望可以帮到大家,顺便巩固我自己的知识????,还有今天有在优快云上搜到photosho... 阅读详情

相关推荐

史上最全的Python基础学习教程:从零开始掌握编程入门

定义变量的语法非常简单,用age = 20 # 把数字 20 放进名为 age 的盒子name = "Python" # 把字符串 "Python" 放进名为 name 的盒子这里要特别注意:=在 Python 中是“赋值符号”,不是数学里的“等于号”。它的作用是“把右边的值放进左边的盒子”,而不是表示左右两边相等。比如x = x + 1在数学中不成立,但在编程中表示“取出 x 的值,加 1 后再放回 x 盒子”,这是非常常见的操作。布尔值True和False。

AI时代光年 1736

Python3 注释

Python3 注释

xiqng17111342931的博客 2222

BEVFusion实战:从零搭建LiDAR-Camera融合的3D目标检测环境(附避坑指南)

本文提供了BEVFusion实战指南,详细讲解如何从零搭建LiDAR-Camera融合的3D目标检测环境。内容涵盖环境配置、数据预处理、模型训练与性能优化等关键步骤,并附有实用的避坑技巧,帮助开发者高效部署这一先进的BEV感知算法。

p4q5r6s7t的博客 513

python-变量声明、数据类型、标识符

为什么需要变量呢?一个程序就是一个世界,不论使用哪种高级程序语言编写代码,变量都是其程序的基本组成单位。如下图所示的sum和sub都是变量。变量相当于内存中一个数据存储空间的表示,可以将变量看作是一个房间的门牌号,通过门牌号能找到房间;通过变量名可以访问到变量的值。声明变量或定义变量变量赋值变量使用变量表示内存中的一个存储区域,该区域有自己的变量名和数据类型。//定义变量var n int//赋值变量n = 10//使用变量。

s44359487yad的博客 7101

从零到一:DAMASK与ABAQUS联合仿真的环境配置艺术

本文详细介绍了在Ubuntu 16.04系统中配置DAMASK与ABAQUS2017联合仿真环境的完整流程,涵盖系统基础环境搭建、Python科学计算环境构建、DAMASK核心安装与配置,以及ABAQUS集成与联合调试。通过实战案例和高级调试技巧,帮助用户快速掌握有限元分析中的晶体塑性模拟技术。

weixin_29253711的博客 855

基于单片机直流电机调速控制系统设计

*单片机设计介绍,基于单片机直流电机调速控制系统设计。

2201_75940997的博客 2779

Python学习之基础篇3--变量

在Python中定义变量非常简单,不需要声明变量的类型,只需直接给变量赋值即可。

qq_43437111的博客 4351

告别死记硬背!用实际案例带你玩转UE5编辑器界面(附场景搭建练习)

本文通过实际案例教学,带你轻松掌握Unreal Engine5编辑器界面的核心功能。从创建基础场景到添加光源和可交互对象,逐步讲解内容浏览器、模式面板、世界大纲等模块的协同工作方式,告别死记硬背的学习模式。附场景搭建练习,助你快速上手UE5开发。

weixin_30566063的博客 729

python基础知识——变量

是可以根据要表示的数据的大小,自动扩容。:有些时候,我们需要进行的计算可能更复杂一些,需要把一些计算的中间结果保存起来,这个时候就需要使用。布尔类型是一类比较特殊的类型,它的取值只有两个,True 和 False(首字母大写)。给定四个分数,67.5,89.0,12.9,32.2,编写代码,求这四个数的方差。PS:方差计算过程:取每一项,减少平均值,计算平方,再求和,最后除以项数减1。后续使用 = 对 a 设置值,相当于修改 a 的内容,称为赋值。字符包括:英文字母,阿拉伯数字,标点符号,甚至是汉字符号。

Spark6_的博客 1836

从SFF-8087到SFF-8643:详解服务器硬盘背板连接线缆的演变与实战接线

本文深度解析了服务器硬盘背板连接技术从SFF-8087到SFF-8643的演进历程,重点介绍了SAS、SATA和U.2接口的技术特点与实战接线方案。通过对比不同连接器标准的物理特性和电气规范,提供了混合环境下的线缆选择策略和常见故障排查指南,帮助IT专业人员优化存储系统性能与稳定性。

weixin_30603633的博客 272

sysbench安装(在线&离线)

sysbench下载、安装、编译和异常处理方法

m0_61066945的博客 8751

【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识

Python是一种高级、解释型、通用的编程语言,由Guido van Rossum于20世纪90年代初创立。Python以其简洁易读的语法和强大的功能而闻名,使其成为新手和经验丰富的开发人员的首选语言之一。x = 10 # 定义一个整数变量name = "Alice" # 定义一个字符串变量pi = 3.14 # 定义一个浮点数变量is_active = True # 定义一个布尔变量变量名应该具有描述性,以便代码的可读性和可维护性。

Allen- 7667

使用 Visual Studio Code 连接 ABAP On-Premise 系统做开发的详细配置步骤

本文详细介绍了如何在Visual Studio Code中通过ABAP Development Tools扩展连接ABAP On-Premise系统。关键步骤包括:通过Ctrl+Shift+P打开命令行面板选择「ABAP: New Destination...」创建RFC连接(仅支持SSO单点登录),选择本地SAPGUI中已有的系统,输入Client ID、语言和用户名(无需密码),最后将目标系统添加到工作区即可开始开发。文章强调了企业安全考虑下仅支持SSO的设计理念,并展示了连接配置的JSON格式示例。整

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 983

从零开始学Python(1)——环境配置、变量

今天开始自学一下python,这篇博客记录环境配置和变量部分内容

2301_79535379的博客 1279

Xilinx DDR3 MIG IP核设计--汇总导航

快速上手Xilinx DDR3 IP核----汇总篇

孤独的单刀 2万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

从零开始的python学习——常量与变量

这篇文章介绍了Python中变量和数据类型的基础知识。主要内容包括:1. 常量和表达式部分,讲解如何使用Python进行算术运算及表达式概念;2. 变量部分,详细说明变量的定义、命名规则、使用方法和类型系统;3. 数据类型部分,重点介绍整数、浮点数、字符串和布尔等基本数据类型及其特性;4. 动态类型特性,解释Python变量类型在运行时可以改变的特点。文章通过具体代码示例帮助理解,并强调了良好的编程规范对代码可读性的重要性。适合Python初学者系统学习变量和数据类型的基础概念。

Linux、C++、图形软件开发等。不一定每次都能写出完美的代码,但会认真搞懂每一个问题。 2001

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python入门指南:从零开始学习Python编程

Python是一种简单而又强大的编程语言,它在全球范围内广受欢迎,适用于各种应用场景,包括Web开发、数据分析、人工智能和科学计算等。本篇博客将为初学者提供一份Python入门指南,帮助你从零开始掌握Python编程基础。本篇博客简要介绍了Python编程的入门知识,包括安装Python、变量和数据类型、函数以及列表和字典。这只是Python编程世界的冰山一角,希望它能帮助你起步。在接下来的学习过程中,你可以深入学习Python的更多特性和功能,开发出更加强大的应用程序。祝你编程愉快!图书推荐。

唯有努力,方可自信! 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

从零开始学Python第03课:Python语言中的变量

在 Python 程序中,我们可以使用变量来保存数据变量有不同的类型,常用的类型有intfloatstr和bool。在有需要的情况下,可以通过 Python 内置的函数对变量进行类型转换。变量是可以做运算的,这是解决很多问题的先决条件,我们会在下一课中为大家详细介绍变量的运算。

mate1357的博客 1734

从零开始学Python:Python语言中的变量

对于想学习编程的新手来说,有两个问题可能是他们很想知道的,其一是“什么是(计算机)程序”,其二是“写(计算机)程序能做什么”。。今时今日,为什么有那么多人选择用 Python 语言来写程序,因为 Python 语言足够简单和强大。相较于 C、C++、Java 这样的编程语言,Python 对初学者和非专业人士更加友好,我们想做的很多事情,在 Python 语言中都能找到简单优雅的解决方案。接下来,我们就从最基础的语言元素开始,带大家认识和使用 Python 语言。

Trb201013的博客 836

从零开始:用Python语言基础构建宠物养成游戏:从核心知识到完整实战

在学习Python语言基础的过程中,变量、数据类型、条件语句等核心知识往往较为抽象。本文将通过开发一款宠物养成游戏,将这些知识点融入实际代码中,帮助大家深入理解如何运用Python实现具体功能。

玉笥寻珍的博客 1223

从零开始学Python编程之变量

在Python中,每个变量都有一个特定的数据类型,这决定了变量可以存储的数据的种类和所需的内存大小。例如,当我们定义一个整数变量时,变量的类型为整数。在Python中,每个变量都有一个特定的数据类型,这将决定变量可以存储的数据类型和所需的内存大小。接着,我们又将变量 x 的值修改为字符串 "Hello World",并再次打印变量 x 的值,输出结果为 "Hello World"。在这个示例代码中,我们定义了一个函数 my_func(),在函数内部定义了一个变量 x,并将其赋值为 10。

岛上程序猿 235

从零开始学Python:03 Python语言元素之变量

作为一个程序员,可能经常会被外行人问到两个问题,其一是“什么是(计算机)程序”,其二是“写(计算机)程序能做什么”,这里我们先对两个问题做一个回答。程序是指令的集合,写程序就是用指令控制计算机做我们想让它做的事情。那么,为什么要用Python语言来写程序呢?因为Python语言简单优雅,相比C、C++、Java这样的编程语言,Python对初学者更加友好,当然这并不是说Python不像其他语言那样强大,Python几乎是无所不能的,在第一节课的时候,我们就说到了Python可以用于服务器程序开发、云平台开发

关注我!带你一路 "狂飙" 到底! 810
上一篇: 从零开始:Python 从0到1轻松入门
下一篇: 从零开始:Python语言基础之数据类型
玉笥寻珍
博客等级 码龄2年 282粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉笥寻珍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值