3. Python 基础知识:从注释到类型转换,打好地基

各位同学,欢迎来到第三章。说实话,Python 的语法在编程语言里算是相当友好的了。但友好不代表可以跳过基础。我见过太多人急着写项目,结果连变量命名都乱七八糟,最后代码自己都看不懂。

这一章,咱们把地基打牢。注释怎么写、变量怎么用、数据类型有哪些、运算符怎么玩…… 一个一个来。

3.1 注释:给代码加个“说明书”

注释这东西,说白了就是写给程序员看的备注。Python 解释器会直接忽略它。但别小看注释,我接手过不少“零注释”项目,那感觉就像在玩密室逃脱。

3.1.1 单行注释

用 # 开头,后面跟你的说明文字。

# 这是一个单行注释
print("Hello, World!")  # 也可以放在代码后面

3.1.2 多行注释

用三个单引号 ''' 或三个双引号 """ 包裹。

"""
这是一个多行注释
可以写很多行说明
比如函数的用途、参数的含义
"""
print("多行注释示例")
我的习惯:写注释时,多解释“为什么这么做”,而不是“做了什么”。代码本身已经说明了“做了什么”。

3.2 变量与数据类型:给数据一个“家”

变量,就是给数据起个名字。Python 里不需要提前声明类型,直接赋值就行。这很灵活,但也容易踩坑。

3.2.1 变量赋值

name = "小明"    # 字符串
age = 25         # 整数
height = 1.75    # 浮点数
is_student = True  # 布尔值

3.2.2 常见数据类型

类型 名称 示例
int 整数 10, -5, 0
float 浮点数 3.14, -0.5, 1.0
str 字符串 "Hello", 'Python'
bool 布尔值 True, False
list 列表 [1, 2, 3], ["a", "b"]
dict 字典 {"name": "小明", "age": 25}
注意:Python 是动态类型语言,变量类型可以随时改变。但我不建议你这么做——代码可读性会直线下降。我曾经在一个项目里看到同一个变量一会儿是字符串,一会儿是列表,调试起来简直崩溃。

3.3 标识符与关键字:起名字的“规矩”

标识符就是变量、函数、类等的名字。起名字有规矩,得遵守。

3.3.1 命名规则

  • 只能包含字母、数字、下划线
  • 不能以数字开头
  • 不能是 Python 关键字
  • 区分大小写(name 和 Name 是两个变量)

3.3.2 Python 关键字

这些词已经被 Python 征用了,你不能拿它们当变量名。

False, None, True, and, as, assert, async, await, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield
我的建议:变量名要“见名知意”。用 student_name 而不是 sn,用 total_price 而不是 tp。你省下的打字时间,会在调试时加倍还回来。

3.4 输入与输出:和程序“对话”

程序不是孤岛,它需要跟用户交互。输入输出就是桥梁。

3.4.1 输出函数 print()

把内容打印到控制台。

print("Hello, World!")        # 输出字符串
print(42)                     # 输出数字
print("年龄:", 25)            # 输出多个值,自动加空格
print("Hello", "World", sep="-")  # 指定分隔符
print("Hello", end="!\n")     # 指定结尾字符

3.4.2 输入函数 input()

从控制台读取用户输入,返回的是字符串。

name = input("请输入你的名字: ")
print("你好,", name)

# 注意:输入的是字符串,如果需要数字,得转换
age = int(input("请输入你的年龄: "))
print("明年你", age + 1, "岁")
踩坑提醒:我曾经写过一个计算器程序,直接用 input() 返回的值做加法,结果变成了字符串拼接("5" + "3" = "53")。记住,input() 永远返回字符串,需要数值就手动转换。

3.5 运算符:让数据“动”起来

运算符就是用来操作数据的符号。Python 的运算符很丰富,咱们挑重点说。

3.5.1 算术运算符

运算符 描述 示例 结果
+ 加 5 + 3 8
- 减 5 - 3 2
* 乘 5 * 3 15
/ 除 5 / 3 1.666...
// 整除 5 // 3 1
% 取余 5 % 3 2
** 幂运算 5 ** 3 125

3.5.2 比较运算符

返回布尔值 True 或 False。

a = 10
b = 20
print(a == b)   # False
print(a != b)   # True
print(a < b)    # True
print(a >= b)   # False

3.5.3 逻辑运算符

用于组合条件。

age = 25
has_id = True

# and: 两个条件都成立
if age >= 18 and has_id:
    print("可以进入")

# or: 至少一个条件成立
if age < 12 or age > 60:
    print("有优惠")

# not: 取反
if not has_id:
    print("请出示证件")

3.5.4 赋值运算符

x = 10
x += 5   # 等价于 x = x + 5
x -= 3   # 等价于 x = x - 3
x *= 2   # 等价于 x = x * 2
x /= 4   # 等价于 x = x / 4

3.6 类型转换:让数据“变形”

有时候你需要把一种类型的数据变成另一种。比如从 input() 拿到的字符串转成数字。

3.6.1 隐式类型转换

Python 自动帮你转,比如整数和浮点数运算时。

result = 10 + 3.14  # 10 自动转成 10.0,结果是 13.14
print(type(result))  # 

3.6.2 显式类型转换

你手动调用转换函数。

# 字符串转整数
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
print(int(pi))  # 3

# 整数转浮点数
print(float(10))  # 10.0
注意:不是所有转换都能成功。比如 int("abc") 会报错。我在处理用户输入时,一定会用 try...except 来捕获这种异常。

3.7 知识体系总览

下面这张图帮你把本章的知识点串起来。你可以把它当成一张地图,随时回来看看。

Python 基础知识体系 Python 基础 注释 变量与数据类型 标识符与关键字 输入与输出 单行 / 多行 int / float / str / bool 命名规则 / 关键字 print() / input() 运算符 类型转换 算术 / 比较 / 逻辑 / 赋值 隐式 / 显式转换 💡 提示:每个知识点都值得动手敲一遍,光看是学不会编程的

3.8 动手练一练

光看不练假把式。下面这个小练习,把本章的知识点串起来用。

# 1. 获取用户信息
name = input("请输入你的名字: ")
age = int(input("请输入你的年龄: "))
height = float(input("请输入你的身高(米): "))

# 2. 计算明年年龄
next_year_age = age + 1

# 3. 判断是否成年
is_adult = age >= 18

# 4. 输出结果
print("\n===== 个人信息 =====")
print("姓名:", name)
print("当前年龄:", age)
print("明年年龄:", next_year_age)
print("身高:", height, "米")
print("是否成年:", is_adult)

# 5. 类型检查
print("\n数据类型检查:")
print("name 的类型:", type(name))
print("age 的类型:", type(age))
print("height 的类型:", type(height))
print("is_adult 的类型:", type(is_adult))

运行结果示例:

请输入你的名字: 张三
请输入你的年龄: 25
请输入你的身高(米): 1.75

===== 个人信息 =====
姓名: 张三
当前年龄: 25
明年年龄: 26
身高: 1.75 米
是否成年: True

数据类型检查:
name 的类型: 
age 的类型: 
height 的类型: 
is_adult 的类型: 

好了,这一章的内容就到这儿。记住,基础越扎实,后面写代码越顺手。别急着赶进度,把每个例子都亲手敲一遍,你会感谢自己的。