3. Python 基础知识:从零搭起你的代码地基
说实话,很多初学者觉得 Python 基础语法枯燥,恨不得直接上手写爬虫、搞 AI。但我做了这么多年性能优化,见过太多因为基础不牢,后期排查问题排查到崩溃的案例。今天这一章,咱们就把地基打扎实。你想想看,地基不稳,楼盖得再高也是危房。
3.1 注释:给代码留个便签
注释这东西,说白了就是写给未来的自己看的。我有个习惯:写注释时总假设半年后的自己是个刚入行的新手。你想想看,半年后你回头看自己写的代码,如果没有注释,可能连自己都看不懂。
Python 里注释分两种:
- 单行注释:用
#开头,只影响当前行 - 多行注释:用三个引号
'''或"""包裹
# 这是单行注释,通常用来解释下一行代码
name = "Python" # 也可以写在代码后面
"""
这是多行注释
可以写好几行说明
我经常用它来写函数说明
"""
3.2 变量与数据类型:代码的容器
变量就像一个个小盒子,用来装数据。Python 是动态类型语言,你不需要提前声明盒子要装什么——想装啥就装啥,灵活得很。
常用的数据类型有这些:
| 类型 | 名称 | 示例 | 说明 |
|---|---|---|---|
int |
整型 | age = 25 |
整数,没有小数点 |
float |
浮点型 | price = 19.99 |
带小数点的数 |
str |
字符串 | name = "Python" |
文本,用引号包裹 |
bool |
布尔型 | is_ok = True |
只有 True 和 False |
list |
列表 | items = [1, 2, 3] |
有序的可变集合 |
dict |
字典 | person = {"name": "Tom"} |
键值对存储 |
# 变量赋值,Python 会自动推断类型
count = 10 # int
pi = 3.14159 # float
message = "Hello" # str
is_active = True # bool
# 用 type() 查看类型
print(type(count)) # 输出:<class 'int'>
"5" + 3 会直接报错。记住:不同类型的数据,不能直接运算。
3.3 标识符与关键字:起名字的规矩
标识符就是你给变量、函数起的名字。Python 对起名字有几点要求:
- 只能包含字母、数字、下划线
- 不能以数字开头
- 不能使用 Python 的关键字
- 区分大小写(
Name和name是两个不同的变量)
关键字就是 Python 已经占用的词,比如 if、for、while、class 等。你可以用 import keyword; print(keyword.kwlist) 查看所有关键字。
# 合法的标识符
my_var = 10
userName = "Alice"
_count = 5
# 不合法的标识符
# 2name = "Tom" # 数字开头,报错
# my-var = 10 # 有连字符,报错
# if = 20 # 用了关键字,报错
命名规范建议:我个人习惯用「蛇形命名法」——变量名全小写,单词间用下划线连接,比如 print_speed、optimize_result。这样在团队协作中,大家一看就知道这是变量还是类名。
3.4 输入与输出:和程序对话
输入输出是程序与外界交互的桥梁。Python 提供了两个最基础的工具:
input():从键盘获取输入,返回的是字符串print():把内容输出到控制台
# 输入示例
name = input("请输入你的名字:")
print("你好," + name + "!")
# 输出多个值,用逗号分隔
age = 25
print("姓名:", name, "年龄:", age)
# 格式化输出(我比较喜欢这种方式)
print(f"姓名:{name},年龄:{age}")
input() 返回的是字符串,直接拿去计算当然会出问题。记住:输入的数字要先用 int() 或 float() 转换。
3.5 运算符:代码里的数学课
运算符就是用来做各种操作的符号。Python 的运算符很丰富,我挑几个常用的说说:
| 类型 | 运算符 | 示例 | 结果 |
|---|---|---|---|
| 算术 | + - * / // % ** |
10 // 3 |
3(整除) |
| 比较 | == != > < >= <= |
5 == 5 |
True |
| 逻辑 | and or not |
True and False |
False |
| 赋值 | = += -= *= /= |
x += 1 |
等价于 x = x + 1 |
# 算术运算符
a = 10
b = 3
print(a + b) # 13
print(a // b) # 3(整除,丢掉小数部分)
print(a ** b) # 1000(10的3次方)
# 逻辑运算符
x = 5
print(x > 3 and x < 10) # True
print(not (x > 3)) # False
== 和赋值运算符 = 千万别搞混。我见过太多新手在 if 条件里写 if x = 5,这在 Python 里会直接报错,但在其他语言里可能是个隐蔽的 bug。
3.6 程序类型转换:让数据「变形」
类型转换就是把数据从一种类型变成另一种。Python 提供了几个内置函数来做这件事:
int(x):把 x 转成整数float(x):把 x 转成浮点数str(x):把 x 转成字符串bool(x):把 x 转成布尔值list(x):把 x 转成列表
# 字符串转数字
num_str = "123"
num_int = int(num_str) # 123(整数)
num_float = float(num_str) # 123.0(浮点数)
# 数字转字符串
age = 25
message = "我今年" + str(age) + "岁" # 必须转成字符串才能拼接
# 布尔转换(记住:0、空字符串、None 都是 False)
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("abc")) # True
实战经验:在优化打印速度的项目中,我经常需要把用户输入的字符串转成数字进行计算。比如用户输入打印份数,input() 拿到的是 "10",必须用 int() 转成 10 才能参与运算。这一步看似简单,但漏掉的话,程序就会报错。
嗯,到这里,Python 的基础语法就讲完了。这些内容看着简单,但每一个都是后面优化打印速度与精度的基石。你想想看,如果连变量类型都搞不清楚,怎么去优化代码的执行效率?