第二章:变量与数据类型——给数据贴个标签的学问
1. 变量:不是“盒子”,是“便利贴”
各位少侠,欢迎来到第二章!在上一章里,我们像模像样地给变量贴了便利贴。但今天,我要打破一个编程界流传多年的“谎言”。
很多三流教程会告诉你:“变量就是一个装数据的盒子”。错!大错特错!在Python的宇宙里,变量根本不是盒子,它只是一张便利贴(标签)!
当你写下 name = "张三" 时,Python在内存的某个角落悄悄造了一个叫“张三”的实体对象,然后撕下一张写着 name 的便利贴,“啪”地一下贴在它身上。如果你接着写 name = "李四",Python不会把盒子里的“张三”掏出来扔掉,它只是把 name 这张便利贴撕下来,贴到了新造的“李四”身上。这就是Python最迷人的“动态类型”机制——变量没有固定的类型,类型是对象自带的,变量只负责“指路”。
2. 数据类型:计算机的“收纳强迫症”
计算机是个极度死板的强迫症患者,它必须把世界上所有的信息分门别类。在Python的收纳柜里,最常用的有这四大金刚:
- 整数 (int):没有小数点的数字。比如
1、-99、200。 - 浮点数 (float):带小数点的数字。比如
3.14、-0.5。 - 字符串 (str):被引号包裹的文本。比如
"Hello"、'Python'。 - 布尔值 (bool):只有两个极端,
True(真)和False(假)。
怎么知道你的便利贴贴在什么类型的对象上?用 type() 函数!它就像是一个X光扫描仪:
python
age = 18
print(type(age)) # 输出:<class 'int'>
price = 19.9
print(type(price)) # 输出:<class 'float'>
3. 字符串:不只是打字那么简单
字符串(str)是编程界最灵活的戏精。你可以用单引号 'Hello',也可以用双引号 "Hello",Python根本不在乎。但如果你的文本里本身就有引号怎么办?
python
# 外双内单,完美兼容
msg1 = "He said 'Hello'"
# 外单内双,同样优雅
msg2 = 'She said "Hi"'
字符串的“超能力”:
- 拼接:用
+号可以把字符串粘起来。"张" + "三"就是"张三"。 - 重复:用
*号可以让字符串复读。"*" * 10会给你一串**********。 - 索引与切片:Python的索引从
0开始!text = "Hello Python",text[0]是"H",text[0:5]能切出"Hello"。
4. f-string:告别字符串拼接的“缝合怪”
如果你还在用 + 号把文字和数字拼在一起,那你还在用上个世纪的原始人语法。一旦遇到数字和字符串相加,Python就会无情地抛出 TypeError(类型错误)。
现在,请立刻、马上、毫不犹豫地拥抱 f-string(格式化字符串)!在引号前加个 f,把变量塞进大括号 {} 里,一切烦恼烟消云散:
python
name = "小明"
age = 18
# 优雅,永不过时
print(f"我叫{name},今年{age}岁")
你甚至可以在 {} 里直接做数学题,或者控制小数位数:
python
pi = 3.1415926
print(f"圆周率保留两位小数:{pi:.2f}") # 输出:3.14
5. 命名规范:别让你的代码像“狗咬过的毛线团”
给变量起名字,是程序员一生的修行。Python社区有一套神圣不可侵犯的 PEP 8 命名规范。记住以下三条铁律:
- 蛇形命名法 (snake_case):变量名必须全小写,单词之间用下划线连接。
user_name、max_speed才是正道。千万别写成userName(那是Java的恶习)或者username(单词多了会瞎眼)。 - 见名知意,拒绝缩写:用
customer_data,别用data;用age,别用a。除非是循环里的i、j、k,否则别用单字母变量。 - 避开Python的“雷区”:绝对不能用Python的关键字(如
if、for、class)当变量名。你可以用import keyword; print(keyword.kwlist)来查看这些被系统霸占的词汇。
6. 本章小结与课后“折磨”
今天你掌握了Python的灵魂:变量是便利贴,数据类型是收纳盒,f-string是拼接神器,而PEP 8是你行走江湖的礼仪规范。
课后小挑战:
定义一个商品价格变量 price = 19.9 和一个折扣变量 discount = 0.8。计算折后价 final_price 和节省的金额 saved_amount。然后,必须使用 f-string,分两行打印出结果,并且金额要保留两位小数(提示:使用 :.2f)。
敲完代码,记得给自己鼓个掌。下一节,我们将教计算机学会“看脸色”——流程控制!
本文由 AI 辅助生成
参考资料:
- PEP 8 官方代码风格指南:https://peps.python.org/pep-0008/
- Python官方数据类型文档:https://docs.python.org/zh-cn/3/library/stdtypes.html
- Python官方字符串格式化指南:https://docs.python.org/zh-cn/3/tutorial/inputoutput.html