3. Python 基础知识:从注释到类型转换,把地基打牢
说实话,我见过不少新手,一上来就急着写复杂逻辑,结果连变量命名都乱七八糟。Python 的语法虽然简洁,但基础不牢,后面写代码真的会很难受。这一章,咱们就把注释、变量、数据类型、运算符这些最核心的东西,一个一个说清楚。
本章知识体系速览:注释 → 变量与数据类型 → 标识符与关键字 → 输入输出 → 运算符 → 类型转换。每一步都是下一步的前提,建议按顺序学。
3.1 注释:给代码加个说明书
注释这东西,不写不影响程序运行,但写好了能救命。我自己的习惯是:复杂的逻辑写注释,简单的代码不写。你想想看,三个月后回来看自己写的代码,如果没有注释,真的会怀疑人生。
Python 里注释分两种:
- 单行注释:用
#开头,只对本行有效。 - 多行注释:用三个单引号
'''或三个双引号"""包裹。
# 这是单行注释,解释下面这行代码的作用
name = "Python" # 行尾也可以加注释
"""
这是多行注释
可以写很多行说明
比如函数的用途、参数含义等
"""
print("Hello, World!")
我的小技巧:写注释时,多解释「为什么这么做」,而不是「做了什么」。比如 # 用二分查找提高性能 比 # 循环查找 有用得多。
3.2 变量与数据类型:Python 的「盒子」哲学
变量是什么?说白了就是一个装数据的盒子。Python 里不需要提前声明类型,直接赋值就行。这一点对新手特别友好,但也容易让人忽略类型的重要性。
Python 的常见数据类型,我整理了一张表:
| 类型 | 名称 | 示例 | 说明 |
|---|---|---|---|
int |
整型 | age = 25 |
整数,没有小数部分 |
float |
浮点型 | price = 19.99 |
带小数点的数字 |
str |
字符串 | name = "Alice" |
用引号括起来的文本 |
bool |
布尔型 | is_ok = True |
只有 True 和 False |
list |
列表 | nums = [1, 2, 3] |
有序的可变集合 |
dict |
字典 | info = {"name": "Tom"} |
键值对存储 |
变量命名有个小坑:不能以数字开头,也不能用 Python 保留的关键字。比如 1name 就是错的,class 也不行。
# 正确的变量命名
user_name = "张三"
age = 30
is_student = False
# 错误的命名(会报错)
# 1name = "李四" # 数字开头
# class = "数学" # class 是关键字
注意:Python 是动态类型语言,变量的类型可以随时改变。但我不建议你这么做——x = 10 之后又写 x = "hello",代码可读性会变得很差。保持一个变量只存一种类型,这是好习惯。
3.3 标识符与关键字:起名字的规矩
标识符就是你给变量、函数、类起的名字。Python 对标识符有硬性规定:
- 只能包含字母、数字、下划线,不能有空格或特殊符号。
- 不能以数字开头。
- 区分大小写,
Name和name是两个不同的变量。 - 不能使用 Python 的关键字(保留字)。
Python 3 一共有 35 个关键字,我挑几个容易混淆的列出来:
| 关键字 | 用途 | 常见误用 |
|---|---|---|
False |
布尔假值 | 不能写成 false(小写) |
None |
空值 | 不能写成 none |
class |
定义类 | 有人拿它当变量名 |
def |
定义函数 | 容易和 del 搞混 |
return |
函数返回值 | 不能用作变量名 |
我曾经在项目里见过有人用 list 做变量名,结果后面想用 list() 函数时直接报错。嗯,这种坑踩过一次就记住了。
3.4 输入与输出:和程序对话
Python 的输入输出特别简单:
- 输出:
print(),把内容显示到屏幕上。 - 输入:
input(),从键盘获取用户输入,返回的一定是字符串。
# 输出
print("欢迎来到 Python 世界!")
print("我的年龄是", 25) # 可以输出多个值,用逗号分隔
# 输入
name = input("请输入你的名字:")
print("你好,", name)
# 注意:input 返回的是字符串
age = input("请输入你的年龄:")
print(type(age)) # 输出:<class 'str'>
避坑指南:input() 返回的一律是字符串。如果你需要数字,记得做类型转换。我曾经写过一个计算器程序,忘了转换类型,结果 "5" + "3" 变成了 "53",而不是 8。
3.5 运算符:让数据动起来
运算符就是用来操作数据的符号。Python 的运算符分几大类:
算术运算符
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
+ |
加 | 10 + 3 |
13 |
- |
减 | 10 - 3 |
7 |
* |
乘 | 10 * 3 |
30 |
/ |
除 | 10 / 3 |
3.3333 |
// |
整除 | 10 // 3 |
3 |
% |
取余 | 10 % 3 |
1 |
** |
幂运算 | 2 ** 3 |
8 |
比较运算符
比较运算符返回布尔值:True 或 False。
print(5 > 3) # True
print(5 == 3) # False(注意:== 是等于,= 是赋值)
print(5 != 3) # True
print(5 >= 5) # True
逻辑运算符
用来组合多个条件:
and:两边都为真才为真。or:一边为真就为真。not:取反。
age = 20
has_id = True
# 检查是否成年并且有身份证
if age >= 18 and has_id:
print("可以进入")
# 检查是否未成年或者没有身份证
if not (age >= 18 and has_id):
print("禁止进入")
常见错误:把 = 和 == 搞混。赋值用 =,判断相等用 ==。我见过有人写 if a = 5:,这在 Python 里会直接报语法错误,但在其他语言里可能不会报错,养成好习惯很重要。
3.6 类型转换:让数据「变形」
类型转换就是把数据从一种类型变成另一种类型。Python 提供了几个内置函数:
int():转成整数。float():转成浮点数。str():转成字符串。bool():转成布尔值。
# 字符串转整数
num_str = "123"
num_int = int(num_str)
print(num_int + 1) # 124
# 整数转字符串
age = 25
age_str = str(age)
print("我今年" + age_str + "岁") # 字符串拼接
# 浮点数转整数(会丢失小数部分)
pi = 3.14159
pi_int = int(pi)
print(pi_int) # 3
# 布尔值转数字
print(int(True)) # 1
print(int(False)) # 0
类型转换有个原则:只能转「合理」的类型。比如 "abc" 转整数就会报错,因为 Python 不知道 "abc" 对应什么数字。
实战场景:写一个简单的加法计算器。
a = input("请输入第一个数字:")
b = input("请输入第二个数字:")
# 如果不转换,结果是字符串拼接
print("未转换:", a + b) # 比如 "5" + "3" = "53"
# 转换后才是真正的加法
result = int(a) + int(b)
print("转换后:", result) # 8
好了,这一章的内容就这些。注释、变量、数据类型、标识符、输入输出、运算符、类型转换——每一个都是你写 Python 代码时天天要用到的东西。别急着往后赶,把基础打扎实了,后面学函数、类、文件操作才会顺手。