1.Python 程序结构、缩进、注释

第一课先把 Python 代码的“骨架”搞明白。

1. Python 程序是什么

Python 程序通常保存在以 .py 结尾的文本文件中,例如:

first_program.py

文件内容:

print("你好,Python!")
print("这是我的第一个程序。")

在 PowerShell 中进入文件所在目录,然后运行:

python first_program.py

Python 默认从上到下、从左到右依次执行代码,所以输出是:

你好,Python!
这是我的第一个程序。

如果上下交换两行代码,输出顺序也会改变。


2. 最简单的程序结构

先看一个完整但简单的例子:

# 这是程序说明
# 文件名:student.py

student_name = "小明"
student_age = 18


def show_student():
    """显示学生信息。"""
    print("姓名:", student_name)
    print("年龄:", student_age)


if __name__ == "__main__":
    show_student()

它可以分成五个部分:

注释
↓
变量或配置
↓
函数定义
↓
程序入口
↓
执行函数

你现在不需要完全理解函数和 __name__,先知道这是常见结构。

初学阶段写成下面这样也完全可以:

# 学生信息程序

student_name = "小明"
student_age = 18

print("姓名:", student_name)
print("年龄:", student_age)

3. 缩进是什么

Python 使用缩进表示代码的归属关系。

看这个程序:

age = 20

if age >= 18:
    print("已经成年")
    print("可以进入")

print("程序结束")

注意:

if age >= 18:

末尾有一个英文冒号 :

下面两行向右缩进了四个空格:

    print("已经成年")
    print("可以进入")

它们都属于 if

最后一行没有缩进:

print("程序结束")

它不属于 if,无论条件是否成立都会运行。

结构可以理解为:

如果年龄大于或等于18:
    输出“已经成年”
    输出“可以进入”

输出“程序结束”

输出结果:

已经成年
可以进入
程序结束

4. 为什么缩进很重要

下面是错误代码:

age = 20

if age >= 18:
print("已经成年")

运行时可能出现:(indented block:翻译过来就是缩进块)(IndentationError:缩进错误)

IndentationError: expected an indented block

意思是:

Python 发现 if 后面应该有一个缩进代码块,但你没有缩进。

正确写法:

age = 20

if age >= 18:
    print("已经成年")

再看一个错误:

age = 20

if age >= 18:
    print("已经成年")
      print("可以进入")

两行代码的缩进不一致,也会报错。

IndentationError: unexpected indent unexpected:意外的

正确写法:(可以按下Ctrl + alt + L自动缩进)

age = 20

if age >= 18:
    print("已经成年")
    print("可以进入")

记住三条规则:

  1. 每一级缩进使用四个空格。
  2. 同一级代码必须对齐。
  3. 不要混用 Tab 和空格。

大部分编辑器按一次 Tab 会自动插入四个空格,这是可以的。


5. 多层缩进

代码块里面还可以包含代码块:

age = 20
has_ticket = True

if age >= 18:
    print("年龄检查通过")

    if has_ticket:
        print("票据检查通过")
        print("允许进入")

print("检查结束")

归属关系是:

第一层:整个程序
    第二层:年龄检查
        第三层:票据检查

不要为了“好看”随便缩进:

print("第一行")
    print("第二行")

第二行没有理由缩进,因此会报错。

缩进只应该出现在需要代码块的结构下面,例如:

if 条件:
    代码

for 数据:
    代码

while 条件:
    代码

def 函数名():
    代码

这些内容后面几周会分别学习。


6. 注释

注释是写给人看的说明,Python 不会执行它。

单行注释以 # 开头:

# 计算用户明年的年龄
age = 18
next_year_age = age + 1

print(next_year_age)

也可以写在代码右边:

port = 8080  # 本地测试服务端口

不过不要堆太多行尾注释,单独写在上一行通常更清楚。

多行说明可以连续使用多个 #

# 这个程序用于模拟本地服务端。
# 当前只负责接收测试请求。
# 后续会增加协议解析功能。

7. 三引号不是普通注释

你可能会看到这种写法:

"""
这是一个本地协议测试程序。
作者:小明
"""

三引号创建的是多行字符串。放在模块、类或函数开头时,它叫作 docstring(文档字符串),用于说明代码用途。

例如:

def show_message():
    """显示欢迎信息。"""
    print("欢迎学习 Python")

不要把三引号当作随处使用的多行注释。普通注释继续使用 #


8. 好注释与坏注释

坏注释只是重复代码:

# 把年龄设置为18
age = 18

# 输出年龄
print(age)

代码本身已经表达得很清楚,注释没有提供额外信息。

更好的注释说明“为什么”:

# 测试协议要求年龄字段使用默认值18
age = 18

print(age)

再举一个以后会遇到的例子:

# RC4 加解密使用同一个操作,因为两者都是与密钥流进行 XOR
result = process_rc4(data, key)

好的注释通常解释:

  • 为什么要这样写
  • 数据有什么特殊格式
  • 这里有什么容易踩的坑
  • 这段代码负责什么业务逻辑

9. 第一周学习安排

第一天

  • 创建和运行 .py 文件
  • 理解代码从上到下执行
  • 学习 print()

第二天

  • 理解代码块
  • 学习四空格缩进
  • 故意制造并修复 IndentationError

第三天

  • 单行注释
  • 行尾注释
  • docstring
  • 判断哪些注释没有价值

第四天

  • 阅读有两层缩进的代码
  • 判断每行代码属于哪个代码块
  • 练习调整代码顺序

第五天

完成下面的综合练习。


10. 第一个练习

创建 week1.py

# 第一周 Python 练习
# 作用:显示学习者信息

name = "把这里改成你的名字"
goal = "学习 Python 和安全逆向脚本开发"

print("姓名:", name)
print("学习目标:", goal)

if name == "把这里改成你的名字":
    print("你还没有修改名字")
else:
    print("配置完成")
    print("开始学习")

运行它,然后修改 name,再运行一次,观察两次输出的区别。


11. 修复缩进练习

下面的代码故意写错了。不要复制正确答案,自己修复:

# 修复这个程序

score = 85

if score >= 60:
print("考试通过")
    print("继续努力")

print("程序结束")

正确运行后应该输出:

考试通过
继续努力
程序结束

12. 本课作业

自己创建 my_profile.py,要求:

  • 文件开头至少写两行注释
  • 创建姓名、年龄、学习目标三个变量
  • 使用 print() 输出三个变量
  • 使用一个 if...else...
  • if 内至少有两行正确缩进的代码
  • 故意制造一次缩进错误,读完报错后再修复

做完把 my_profile.py 的代码和运行结果可以发给AI去检查一下。
然后下一节我们讲变量、基本数据类型以及 print() 的详细用法。

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容