第3章:Python基础知识——打好地基才能盖高楼
说实话,每次带新人入门Python,我总会先让他们把这一章嚼碎了再往后走。为什么?因为注释、变量、类型这些概念就像盖房子的砖和水泥。图快跳过去,后面写代码时坑一个接一个。我自己刚学那会儿,就因为没搞懂类型转换,debug了整整一个下午。嗯,咱们一个一个来。
3.1 注释:代码里的“便签纸”
注释不会被执行,纯粹是写给人类看的。我习惯在关键逻辑前加一行注释,不然三个月后自己都忘了当时写的是啥。
- 单行注释:用
#开头。# 这是单行注释 - 多行注释:用三个单引号
'''或三个双引号"""包裹。
# 计算圆的面积
r = 5
area = 3.14159 * r ** 2 # 这是行尾注释
"""
这是一个多行注释
可以用来写函数说明
"""
# 把a赋值给b 就多余了。3.2 变量:给数据贴个标签
Python 的变量不需要提前声明类型,你把值直接扔给它就行。这就是“动态类型”语言的特点。
name = "小明" # 字符串
age = 25 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔
变量名就是标签,你可以把它贴在数据上。但是——注意,Python 里变量其实是“引用”。比如 a = [1,2,3]; b = a,改 b 时 a 也会变。我曾经因为没搞清楚这一点,在项目里把共享列表改了,导致线上数据错乱……避坑指南:可变对象要用 copy()。
3.3 标识符与关键字:命名有规矩
标识符就是变量名、函数名这些。规则并不复杂:
- 只能包含字母、数字、下划线,且不能以数字开头
- 区分大小写(
Name和name是两个变量) - 不能使用 Python 的保留字(keyword)
Python 3 里一共有 35 个关键字,比如 if, else, for, while, class, def 等。你可以用 import keyword; print(keyword.kwlist) 全部列出来。
| 类别 | 例子 | 说明 |
|---|---|---|
| 合法标识符 | my_var, _count, item2 |
下划线开头常用在“私有”变量 |
| 非法标识符 | 2items, my-var, class |
数字开头、连字符、关键字都不行 |
list、str、int 这些内置函数名当变量。我之前见有人写了 list = [1,2,3],后面想用 list() 转换字符串时直接报错。3.4 基本数据类型:Python 的“食材库”
Python 内置了几种最常用的数据类型。说白了就是四种基本的:数字、字符串、布尔、None。外加列表、元组、字典、集合(后面章节再展开)。
- int:整数,没有大小限制(你知道 Java 的 int 有范围,Python 没有)
- float:浮点数,就是带小数点的数
- str:字符串,用引号括起来
- bool:布尔值,只有
True和False - NoneType:空值,只有一个
None
print(type(42)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("你好")) # <class 'str'>
print(type(True)) # <class 'bool'>
print(type(None)) # <class 'NoneType'>
3.5 输入输出函数:跟程序说句话
print() 和 input() 是 Python 里最亲密的一对函数。
- print():可以向控制台输出任何内容,多个参数用逗号隔开,默认以空格分隔,并以换行结束。
- input():从键盘读取一行文本,返回的是字符串。注意——不管输什么,回来的都是字符串!
name = input("请输入你的名字:")
print("你好,", name, "!欢迎来到Python世界。")
input() 得到数字,记得用 int() 或 float() 转换。直接拿字符串做数学运算会炸。3.6 运算符:算数逻辑一把抓
运算符种类不少,我挑几个容易混淆的讲一讲。
| 类型 | 符号 | 例子 | 结果 |
|---|---|---|---|
| 算术 | + - * / // % ** |
10 // 3 |
3 (整数除法) |
| 比较 | == != < > <= >= |
5 == 5.0 |
True (自动类型转换) |
| 逻辑 | and or not |
True and False |
False |
| 赋值 | = += -= *= /= |
a += 1 |
等价于 a = a + 1 |
| 成员 | in not in |
'a' in 'abc' |
True |
| 身份 | is is not |
a is None |
判断是否为同一个对象 |
// 和 % 特别实用。我在处理分页时经常用 total // page_size 算页数,再用 % 判断有没有零头。记住:// 是向下取整,负数也一样。
3.7 类型转换:变脸的艺术
有时候你需要把字符串变成数字,或者把数字变成字符串。Python 提供了一组转换函数:
int(x)—— 转换成整数float(x)—— 转换成浮点数str(x)—— 转换成字符串bool(x)—— 转换成布尔值(非零、非空就是 True)
price = "19.9"
count = "3"
total = float(price) * int(count) # 59.7
print("总价:" + str(total)) # 拼接字符串
int("3.14") 会报错,因为字符串里是小数。得先用 float() 再转 int()。还有,布尔转整数:int(True) 得到 1,这个特性我经常用来简化条件计数。知识体系一目了然
下面这张图把本章的核心模块和关系串起来了。你想想看,是不是心里更有谱了?
好了,这一章的基础知识够你写点小玩意儿了。我记得第一次用 input() + 类型转换做了一个简易计算器,成就感满满。你现在也可以动手试试,把学到的都串起来。