当前位置: 首页 > news >正文

Python 基础详解:变量(Variables)—— 程序的“记忆单元”

一、什么是变量?

在编程中,变量(Variable) 就像是一个“标签”或“容器”,用来存储数据,以便在程序中重复使用。

你可以把变量想象成一个“带标签的盒子”,盒子里可以放数字、文字、列表等各种数据。

# 示例:定义一个变量
age = 25
  • age 是变量名(标签)
  • 25 是存储的值(内容)
  • = 是赋值运算符,表示“把右边的值存到左边的变量中”

二、变量命名规则

Python 对变量名有明确的规则和约定:

✅ 合法的变量名:

name = "张三"
user_age = 30
_score = 95
pi = 3.14159

❌ 不合法的变量名:

# 2age = 25        # 错误:不能以数字开头
# my-name = "李四"   # 错误:不能包含连字符 -
# class = "数学"     # 错误:不能使用关键字

变量命名规则总结:

规则

说明

只能包含

字母、数字、下划线 _

不能以数字开头

1name

不能使用 Python 关键字

class, def, if, for

区分大小写

ageAge是两个不同的变量

建议使用小写

遵循 PEP 8 规范

💡 推荐命名风格:使用 snake_case(小写下划线),如 user_name, total_price


三、Python 的核心数据类型

变量可以存储不同类型的数据。Python 常见的数据类型包括:

1. 整数(int)

表示整数值,正数、负数、零都可以。

age = 25
temperature = -10
count = 0

2. 浮点数(float)

表示带小数点的数字。

price = 19.99
pi = 3.14159
height = 1.75

⚠️ 注意:浮点数计算可能存在精度误差:

print(0.1 + 0.2)  # 输出:0.30000000000000004

3. 字符串(str)

表示文本,用单引号 ' ' 或双引号 " " 包围。

name = "Alice"
message = 'Hello, World!'
greeting = "你好,Python!"

✅ 单引号和双引号效果相同,选择一种风格并保持一致。

4. 布尔值(bool)

表示真或假,只有两个值:TrueFalse

is_student = True
has_job = False

⚠️ 注意:TrueFalse 必须首字母大写


四、查看变量类型

使用 type() 函数可以查看变量的数据类型。

print(type(age))        # <class 'int'>price = 19.99
print(type(price))      # <class 'float'>name = "Bob"
print(type(name))       # <class 'str'>is_active = True
print(type(is_active))  # <class 'bool'>

五、变量的动态类型特性

Python 是动态类型语言,意味着:

  • 你不需要提前声明变量的类型
  • 同一个变量可以存储不同类型的数据
x = 10        # x 是整数
print(type(x))  # <class 'int'>x = "Hello"   # x 现在是字符串
print(type(x))  # <class 'str'>x = 3.14      # x 现在是浮点数
print(type(x))  # <class 'float'>

✅ 这是 Python 的灵活性,但也需注意避免类型混淆。


六、变量赋值的多种方式

1. 单个赋值

name = "张三"
age = 25

2. 多变量赋值(同一值)

a = b = c = 100
# a, b, c 都等于 100

3. 多变量同时赋不同值

name, age, city = "李四", 30, "北京"

⚠️ 注意:变量数量必须与值的数量一致,否则会报错。


七、变量的重新赋值与更新

变量的值可以随时被修改。

score = 85
print(score)  # 85# 重新赋值
score = 90
print(score)  # 90# 基于原值更新
score = score + 5  # 或 score += 5
print(score)  # 95

八、变量的作用域(简单介绍)

变量有“作用范围”,分为:

  • 局部变量:在函数内部定义,只能在函数内使用
  • 全局变量:在函数外部定义,整个程序都可以使用
global_var = "我是全局变量"def my_function():local_var = "我是局部变量"print(global_var)  # 可以访问全局变量print(local_var)   # 只能在函数内访问my_function()
# print(local_var)  # 错误!无法在函数外访问局部变量

九、最佳实践与建议

建议

说明

使用有意义的变量名

user_agea更清晰

遵循 snake_case命名法

提高代码可读性

避免使用单个字母

除非在循环中(如 i, j

不要使用关键字作为变量名

list,str,int虽然允许但会覆盖内置类型

给变量添加注释

特别是复杂逻辑时

# ❌ 不推荐
a = 25
b = 30
c = a + b# ✅ 推荐
user_age = 25
friend_age = 30
total_age = user_age + friend_age  # 两人年龄总和

十、常见错误与陷阱

1. 使用未定义的变量

# print(username)  # NameError: name 'username' is not defined

解决:先定义再使用。

2. 拼写错误

user_name = "Alice"
# print(usernmae)  # NameError: name 'usernmae' is not defined

解决:使用代码编辑器的自动补全功能。

3. 类型混淆

age = "25"  # 字符串
# result = age + 5  # TypeError: can only concatenate str (not "int") to str

解决:使用 int() 转换:

result = int(age) + 5  # 30

十一、总结

变量是 Python 编程的基石,掌握变量的使用是学习编程的第一步。

本文核心要点回顾:

概念

说明

变量

存储数据的“容器”

命名规则

字母、数字、下划线,不能数字开头,不能用关键字

命名风格

推荐 snake_case

数据类型

int, float, str, bool

动态类型

变量可以存储不同类型的数据

赋值方式

单赋值、多赋值、同时赋值

最佳实践

使用有意义的名称,避免拼写错误

📌 动手练习建议

  1. 打开 Python 交互环境或 VS Code
  2. 定义几个变量:你的名字、年龄、是否学生
  3. 使用 print()type() 查看它们
  4. 尝试更新变量的值
# 试试看!
your_name = "你的名字"
your_age = 20
is_student = Trueprint(f"我叫{your_name},今年{your_age}岁,是学生吗?{is_student}")
print(type(your_name))
http://www.lryc.cn/news/613038.html

相关文章:

  • Numpy科学计算与数据分析:Numpy数据分析基础之统计函数应用
  • 理清C语言中动态内存管理相关函数
  • 思科设备密码恢复方法
  • 使用Puppeteer轻松自动化浏览器操作
  • Axure安装教程(附安装包)Axure RP 10下载详细安装图文教程
  • 用LaTeX优化FPGA开发:结合符号计算与Vivado工具链
  • C++高频知识点(十五)
  • 解决chrome下载crx文件被自动删除,加载未打包的扩展程序时提示“无法安装扩展程序,因为它使用了不受支持的清单版本解决方案”
  • 《算法导论》第 10 章 - 基本数据结构
  • 深入探索C++模板实现的单例模式:通用与线程安全的完美结合
  • 小程序省市级联组件使用
  • Linux机器可直接使用的自动化编译文件
  • [论文阅读] 人工智能 + 软件工程 | 大型语言模型与静态代码分析工具:漏洞检测能力大比拼
  • 专题:2025财务转型与AI赋能数字化报告|附30+份报告PDF汇总下载
  • 计算机视觉第一课opencv(一)保姆级教学
  • 水下管道巡检机器人cad【10张】三维图+设计说明书
  • 主流小程序 SaaS 平台测评,2025年小程序开发避坑指南
  • 本地组策略编辑器无法打开(gpedit.msc命令异常)
  • Spring Boot整合PyTorch Pruning工具链,模型瘦身手术
  • 29-数据仓库与Apache Hive-创建库、创建表
  • 2025世界机器人大会开幕在即,英伟达/微美全息前瞻聚焦深化场景实践布局!
  • 实时3D可视化软件加速设计审核流程
  • 通过减少回表和增加冗余字段,优化SQL查询效率
  • 从Web2.0到Web3.0——用户体验如何演进
  • 基于Matlab融合深度学习的视频电梯乘客人数检测平台研究
  • Web3.0引领互联网未来,助力安全防护升级
  • 【RabbitMQ面试精讲 Day 13】HAProxy与负载均衡配置
  • OpenCV入门:图像处理基础教程
  • 在开发板上画出一个2048棋盘的矩阵
  • Docker Buildx最佳实践:多架构镜像构建指南