📢 本文是「Java程序员180天转型AI」系列第3课,建议收藏后阅读
🐍交互式vs脚本运行,Java程序员一看就懂

▲ 写代码之前,先搞清楚Python怎么跑起来
一、开篇:Python代码怎么跑?和Java完全不同!🤔
昨天我们装好了PyCharm,环境就绪。今天正式写代码。
但先别急着写,作为Java程序员,你需要先搞清楚一个根本问题:Python代码是怎么运行的?
在Java里,流程是固定的:
写.java文件 → javac编译 → 生成.class字节码 → java运行 → 看到结果// 示例public class Hello {publicstaticvoidmain(String[] args) {System.out.println("Hello Java");}}}
Java是编译型语言,必须先编译再运行。而且必须有一个main方法作为入口。
Python完全不同:
✅ Python是解释型语言,不需要编译,直接运行源代码✅ 不需要main方法,从上到下逐行执行✅ 两种运行方式:交互式(REPL)和脚本运行
今天就把这两种方式讲透,让你彻底理解Python的运行机制。
二、方式一:交互式运行(REPL)—— 像计算器一样写代码 🧮
什么是REPL?
REPL = Read(读取)→ Eval(执行)→ Print(打印)→ Loop(循环)
你输入一行代码,Python立刻执行并返回结果。就像计算器一样,按一个键出一个结果。
怎么启动REPL?
方式1:命令行
$ pythonPython 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] :: Anaconda, Inc. on linuxType "help", "copyright", "credits" or "license" for more information.>>>
方式2:PyCharm的Python Console
打开PyCharm,底部工具栏找到"Python Console"标签,点击即可打开交互式窗口。和命令行完全一样,但带语法高亮和自动补全。
>>> 1 + 12>>> 10 * 550>>> "Hello" + " AI"'Hello AI'>>> print("Hello AI,Java程序员来了!")Hello AI,Java程序员来了!
REPL实战演示
每一行输入,立刻看到输出。不需要保存文件,不需要编译,不需要main方法。
REPL适合什么场景?
✅ 快速验证语法(比如试试字符串能不能用+拼接)✅ 调试小段代码(测试一个正则表达式是否匹配)✅ 学习新API(看看某个函数返回什么类型)✅ 数据探索(Pandas里快速看看DataFrame的形状)
REPL的缺点
❌ 代码不能保存,关掉窗口就没了❌ 不适合写复杂逻辑(超过10行就乱)❌ 没有版本管理,不能回退
💡 类比Java:REPL就像你在IDEA的"Evaluate Expression"调试窗口里写代码,或者像jshell(Java 9+的交互式工具)。适合快速验证,不适合正式开发。
三、方式二:脚本运行——写.py文件,和Java一样正式 💼
这是Python的主要开发方式,和Java的"写文件→编译→运行"类似,但更简单。
Step 1:创建.py文件
在PyCharm里,右键项目 → New → Python File → 命名为hello.py

Step 2:写代码
# 这是我的第一个Python程序print("Hello AI,Java程序员来了!")name = "Java程序员"years = 8print(f"我是{name},做了{years}年开发,现在学AI!")
PyCharm里:右键文件 → Run 'hello',底部看到输出

控制台里:

没有编译步骤!没有main方法!直接运行源代码!
✅ 脚本运行是正式开发的方式,代码可以保存、版本管理、复用。后续所有课程都用这种方式。
四、print() 详解——Python的输出,比System.out.println()简单10倍 🖨️
Java里输出是这样的:
System.out.println("Hello"); // 输出并换行System.out.print("Hello"); // 输出不换行System.out.printf("Name: %s", name); // 格式化输出System.out.println("Name: " + name + ", Age: " + age); // 字符串拼接
Python里只需要一个print()函数,搞定所有场景:
1. 基本输出
print("Hello AI")print(100)print(3.14)print(True)
2. 输出多个值(自动用空格分隔)
name = "Java程序员"years = 8print(name, years) # 输出:Java程序员 8print(name, years, sep=",") # 输出:Java程序员,8
3. 不换行输出(end参数)
print("Loading", end="")print("...", end="")print("Done!")# 输出:Loading...Done!
4. f-string格式化(最常用,Python 3.6+)
name = "Java程序员"salary = 35000print(f"我是{name},月薪{salary},转型AI后薪资翻倍!")# 输出:我是Java程序员,月薪35000,转型AI后薪资翻倍!# 还可以格式化数字pi = 3.1415926print(f"圆周率:{pi:.2f}") # 输出:圆周率:3.14
5. 对比表格:Java vs Python 输出
| 场景 | Java | Python |
|---|---|---|
💡 Java程序员的感受:Python的print()就像Java的System.out.println()的"极简版"。不需要写System.out,不需要考虑类型转换,f-string比String.format()直观100倍。
五、Python注释——比Java更灵活 📝
1. 单行注释(#)
# 这是单行注释,和Java的//一样print("Hello") # 注释也可以写在代码后面
2. 多行注释(三个引号)
"""这是多行注释可以写很多行和Java的 /* */ 类似"""'''也可以用三个单引号效果完全一样'''
3. 特殊用途:文档字符串(Docstring)
Python的多行注释还有一个重要用途:给函数/类写文档。这和Java的Javadoc类似,但更简单。
PyCharm里把鼠标悬停在函数上,会自动显示这个文档字符串。和Java的Javadoc提示一样方便。
def greet(name):"""向用户打招呼Args:name: 用户名Returns:问候语字符串"""return f"Hello, {name}!"
4. 对比表格:Java vs Python 注释
| 类型 | Java | Python |
|---|---|---|
六、为什么Python不需要main方法?🤯
这是Java程序员最困惑的问题。
Java里,程序入口必须是main方法:
public class Hello {publicstaticvoidmain(String[] args) {System.out.println("Hello");}}
Python里,直接写代码就行:
print("Hello")name = "Java程序员"print(f"我是{name}")
Python是脚本语言,从上到下逐行执行。不需要main方法作为入口。
但如果你想写更规范的代码(特别是模块被导入时),可以用这个惯用法:
def main():print("Hello AI")# 其他代码...if __name__ == "__main__":main()
📌 if __name__ == "__main__" 是什么意思?• 当直接运行这个文件时,__name__ 等于 "__main__",所以main()会执行• 当这个文件被其他文件导入时,__name__ 等于文件名,main()不会执行类比Java:就像你写了一个类,既有main方法(独立运行),又可以被其他类import使用。Python用这种方式区分"独立运行"和"被导入"。
初学者可以先不纠结这个,直接从上到下写代码。等Day 30以后写模块了,再用这个惯用法。
七、今日实战:写一个完整的Python程序 🎯
综合今天学的知识,写一个"Java程序员自我介绍"的程序:
# Java程序员转型AI自我介绍程序# 作者:编程菜鸟旅# 日期:2026-06-17# 定义变量(不需要声明类型!)name = "Java程序员"years = 8skills = ["Spring Boot", "微服务", "MySQL", "Redis"]target = "AI应用开发工程师"# 输出自我介绍print("=" * 40)print("🚀 Java程序员转型AI计划")print("=" * 40)print(f" 姓名:{name}")print(f"工作经验:{years}年")print(f"现有技能:{', '.join(skills)}")print(f"转型目标:{target}")print(" 📚 学习计划:")print("- Day 01-30:Python基础 + 数据处理")print("- Day 31-60:机器学习基础")print("- Day 61-90:深度学习 + PyTorch")print("- Day 91-120:大模型 + RAG + Agent")print("- Day 121-150:Java + AI工程落地")print("- Day 151-180:面试冲刺 + 拿offer")print(f" 💪 180天后,{name}将成为一名{target}!")print("=" * 40)
运行结果:

✅ 这个程序涵盖了今天所有知识点:• print() 输出• 变量定义(不需要类型声明)• f-string 格式化• 列表(skills)和字符串拼接• 注释• 脚本运行方式
八、今日任务 & 明天预告 🚀
📌 今日任务(完成来打卡)
✅ 打开PyCharm 2026.1.2的Python Console,用REPL模式运行3个print()✅ 创建一个hello.py文件,写上今天的实战代码✅ 右键运行,看到输出✅ 尝试修改代码,加一行自己的信息📌 今天(第4课)预告
Python数据类型——int、float、str、list、dict,和Java的变量类型有什么区别?
我们会聊:• Python的变量不需要声明类型,怎么做到的?• list和Java的ArrayList有什么区别?• dict和Java的HashMap哪个更好用?• 类型提示(Type Hint)——Python也能写类型声明📌 所有软件和后续代码流程都免费分享,有需要关注后留言即可。本节课程源码已经放在老位置了,刷新后即可获取!建议将我设为星标,避免错过每日课程。坚持180节课,预祝我们转型成功!
如果这篇文章对你有帮助,欢迎点赞、收藏、转发给身边的Java同行。👋
夜雨聆风