Appearance
02|第一个程序
安装好 Python 后,先写一个能运行的最小程序,确认环境配置正确。
一、交互式解释器
在终端输入 python3 进入交互式环境:
bash
$ python3
Python 3.11.4 (main, Jun 9 2023, 07:23:44)
[GCC 11.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>>>> 是提示符,表示等待输入。直接输入代码并回车,会立即执行:
python
>>> print("hello world")
hello world
>>> 2 + 3
5交互式环境适合测试短代码片段,不适合写完整程序。按 Ctrl+D(Linux/macOS)或 Ctrl+Z(Windows)退出。
二、脚本文件
把代码写进 .py 文件,可以保存、复用和版本控制。
创建 hello.py:
python
print("hello world")运行:
bash
python3 hello.py输出:
text
hello world三、脚本文件的标准结构
一个规范的 Python 脚本通常包含以下部分:
python
#!/usr/bin/env python3
"""这是一个示例脚本,打印问候语。"""
def main():
"""主函数,包含程序的主要逻辑。"""
print("hello world")
return 0
if __name__ == "__main__":
raise SystemExit(main())各部分的含义:
#!/usr/bin/env python3:shebang 行。Linux/macOS 上给文件加执行权限后,./hello.py会按这行找到解释器"""...""":文档字符串(docstring),说明这个模块/函数的作用def main():把主逻辑收进函数。脚本变长后,主流程和具体实现分离,更容易阅读if __name__ == "__main__":判断当前文件是被直接执行还是被其他文件 import。被 import 时,这行以下的代码不会执行raise SystemExit(main()):用main()的返回值作为进程退出码
给文件加执行权限:
bash
chmod +x hello.py
./hello.py四、if __name__ == "__main__" 的作用
每个 Python 模块都有一个内置变量 __name__。直接运行文件时,__name__ 的值是 "__main__";被其他文件 import 时,__name__ 的值是模块名(如 "hello")。
这个机制让同一个文件既能当脚本执行,又能当模块被导入。被导入时,import 语句只执行文件顶层的定义(函数、类、变量),不会执行 if __name__ == "__main__" 块里的代码。
python
# utils.py
MESSAGE = "来自 utils 模块"
def greet():
print(MESSAGE)
if __name__ == "__main__":
print("utils.py 被直接执行")python
# main.py
import utils
utils.greet() # 输出:来自 utils 模块
# 不会输出 "utils.py 被直接执行"五、输入与输出
print() 输出到标准输出:
python
print("hello")
print("a", "b", "c") # 输出多个值,默认空格分隔
print("a", "b", sep="-") # 指定分隔符:a-b
print("line1", end="") # 不换行,默认 end="\n"input() 从标准输入读取一行:
python
name = input("请输入名字: ")
print(f"你好, {name}")input() 返回的是字符串。如果需要数字,要手动转换:
python
age = int(input("请输入年龄: "))转换失败时会抛出 ValueError,后续会讲到如何处理这类异常。
记忆锚点:交互式环境用 >>> 提示符,适合测试短代码;脚本文件用 .py 后缀,保存完整程序;if __name__ == "__main__" 让文件既能执行又能被导入;input() 返回字符串,数字需要 int() 转换。