第一个 Python 程序:Hello World 与运行方式

安装完 Python,就迫不及待想写代码了。上一篇 环境搭建:安装 Python 与配置 IDE 我们已经装好了环境。这一篇要正式跑起来第一段代码 “Hello World”,同时把 Python 的四种主流运行方式一次讲清楚:交互式 REPL、脚本文件、模块方式、Jupyter Notebook。理解这四种方式的适用场景,你就理解了 Python 程序是”怎么活起来”的。

一、Hello World 的四种写法

先来一个最简单的:

1
print("Hello, World!")

就这一行。放到不同环境里跑,你会得到不同的体验。下面依次演示。

二、方式一:交互式解释器(REPL)

REPL = Read Eval Print Loop = 读入 → 求值 → 打印 → 循环。它是一个”命令行 Python”,非常适合快速试代码。

进入 REPL

打开终端:

1
2
python              # Windows
python3 # macOS/Linux

看到类似这样的提示符:

1
2
3
Python 3.13.0 (main, Oct  7 2025, 12:00:00)
Type "help", "copyright", "credits" or "license" for more information.
>>>

>>> 就是 Python 在等你输入。试试:

1
2
3
4
5
6
7
>>> print("Hello, World!")
Hello, World!
>>> 1 + 1
2
>>> name = "咖飞"
>>> f"你好,{name}"
'你好,咖飞'

注意 REPL 有一个便利之处:表达式的值会自动打印,不需要 print

1
2
3
4
>>> 3 * 4
12
>>> "abc".upper()
'ABC'

但这个便利只在 REPL 里成立,写进 .py 脚本文件就不打印了。

退出 REPL

  • Windows:Ctrl + Z 回车,或输入 exit()
  • macOS/Linux:Ctrl + D,或输入 exit()

多行代码

REPL 也能写多行代码,遇到 : 会自动进入多行输入:

1
2
3
4
5
6
>>> for i in range(3):
... print(i)
...
0
1
2

按下 Enter 后跟着 ... 的行都是”多行输入”,最后再按一次 Enter(空行)结束。

REPL 适合什么场景?

  • 快速验证一个 API 怎么用;
  • 临时算个数、转个进制;
  • 学新语法时的”试练场”。

不适合:写完整程序、频繁调试、代码量超过 20 行——那种情况就需要脚本文件了。

三、方式二:脚本文件 .py

这是最常用的方式。把代码写进一个 .py 文件,用 Python 运行它。

新建文件

用你喜欢的 IDE(推荐 VS Code)新建 hello.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# hello.py
# 我的第一个 Python 脚本
# 上面的 # 开头的行是注释,Python 会忽略它们

print("Hello, World!")
print("我在学 Python,很开心。")

# 变量
name = "咖飞"
age = 3
print(f"我叫 {name},今年 {age} 岁。")

# 简单计算
result = (100 + 50) * 2
print(f"结果是 {result}")

运行

在文件所在目录打开终端:

1
2
python hello.py              # Windows
python3 hello.py # macOS/Linux

输出:

1
2
3
4
Hello, World!
我在学 Python,很开心。
我叫 咖飞,今年 3 岁。
结果是 300

关于文件路径

  • 推荐做法:cd 到脚本所在目录,然后 python hello.py
  • 也可以用绝对路径python D:\code\hello.py(Windows)或 python /home/gkbn/code/hello.py(Linux)。

关于中文

Python 3 源代码默认 UTF-8,你直接写中文没有问题。但请确保:

  • 编辑器用 UTF-8 保存文件(VS Code、PyCharm 默认就是);
  • 如果 Windows 命令行显示乱码,可执行 chcp 65001 切换到 UTF-8 编码。

四、方式三:作为模块运行 python -m

-m 参数把某个模块当作脚本来运行,非常有用:

1
2
3
4
python -m http.server 8000   # 一行命令启动一个静态文件服务器
python -m json.tool < a.json # 格式化 JSON 文件
python -m venv .venv # 创建虚拟环境
python -m pip install requests # 显式指定当前 python 的 pip

为什么要写 python -m pip 而不是直接 pip 因为电脑上可能有多个 Python,直接 pip 有时候会把包装到另一个 Python 里。用 python -m pip 强制它跟当前 python 是一伙的。

五、方式四:Jupyter Notebook(可选)

Notebook 是一种”网页上的交互式 Python 环境”,适合做数据分析、机器学习、教学演示。它的特点是把代码分成一个个”单元格”(cell),每个 cell 单独运行、单独看结果。

安装并启动

1
2
pip install jupyterlab
jupyter lab

浏览器会自动打开 http://localhost:8888,新建 Notebook,就可以边写代码边看结果。

对于纯教学场景,Notebook 非常直观;但如果你要写一个完整的应用(比如一个 Web 服务),还是 .py 文件更合适。本教程后续所有代码都以 .py 脚本形式给出

六、shebang:给脚本”加双翅膀”

在 macOS/Linux 上,你可以给脚本第一行加个 shebang:

1
2
3
#!/usr/bin/env python3
# hello.py
print("Hello, World!")

然后给它执行权限:

1
2
chmod +x hello.py
./hello.py # 直接运行,不再需要 python 前缀

Windows 用户不需要 shebang,因为它是 Unix 世界的机制。

七、Python 到底是”编译”还是”解释”?

严格来说,Python 是”编译成字节码然后由解释器执行“。当你运行 python hello.py,实际过程是:

  1. 词法/语法分析:解析 hello.py
  2. 编译为字节码.pyc 文件,缓存在 __pycache__ 目录);
  3. 虚拟机执行字节码

所以你在项目里看到的 __pycache__ 文件夹,就是这个字节码缓存。它可以放心删除,Python 会在下次运行时重新生成。

八、常见错误与排查

错误 1:SyntaxError: invalid syntax

新手常犯的是中英文标点混用。比如:

1
2
3
4
5
# 错的:括号是中文括号
print"Hello"

# 对的:括号是英文括号
print("Hello")

复制自 Word 或聊天软件里的代码尤其容易出这个问题。

错误 2:IndentationError: unexpected indent

Python 强制缩进,一行行的开头必须对齐。不要混用 Tab 和空格。推荐 IDE 里设置”Tab 输入 4 个空格”。

错误 3:NameError: name 'xxx' is not defined

变量还没赋值就用了:

1
2
print(name)   # NameError,因为 name 从来没定义过
name = "咖飞"

Python 是顺序执行的,用之前必须定义。

错误 4:FileNotFoundError / “找不到文件”

python hello.py 报文件找不到,通常是因为你在错误的目录下运行。用 pwd(macOS/Linux)或 cd(Windows)确认当前所在目录。

错误 5:REPL 里退出不了

Windows 终端里 Ctrl+D 不管用,要用 Ctrl+Z 然后回车,或者输入 exit()

九、一个稍复杂的完整示例

我们把这一篇的知识做一个整合,写一个”打招呼小工具”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# greet.py
# 一个简易的打招呼工具

import datetime # 内置模块,处理日期时间

def get_greeting():
"""根据当前时间返回合适的问候语。"""
hour = datetime.datetime.now().hour
if hour < 6:
return "夜猫子"
elif hour < 12:
return "早上好"
elif hour < 18:
return "下午好"
else:
return "晚上好"


def main():
name = input("请告诉我你的名字:").strip()
if not name:
name = "陌生人"
greeting = get_greeting()
print(f"{greeting}{name}!")
print(f"当前时间:{datetime.datetime.now():%Y-%m-%d %H:%M:%S}")


if __name__ == "__main__":
main()

保存后运行:

1
python greet.py

现在你的第一段 Python 程序已经具备”读取输入 → 判断时段 → 输出问候”的完整逻辑了。虽然还有很多语法没讲(函数、if、__name__ 等),但没关系——它们后面几篇都会展开。

十、小结与延伸阅读

  • REPL 适合快速试代码,.py 脚本适合写完整程序;
  • python -m 是一个被低估的实用技巧;
  • Jupyter Notebook 适合数据分析和教学;
  • Python 实际是”编译成字节码再解释执行”;
  • 新手最容易踩的坑:中英文标点、缩进不一致、变量未定义;
  • 从这一篇开始,请把每个示例都亲手敲一遍。

延伸阅读:

下一篇 变量与基本数据类型 我们会讲 Python 里最基本的”数据积木”。