乐于分享
好东西不私藏

Java+AI 第3课第一个Python程序

Java+AI 第3课第一个Python程序

📢 本文是「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 输出

场景JavaPython
基本输出
System.out.println("Hello")
print("Hello")
不换行
System.out.print("Hello")
print("Hello", end="")
格式化字符串
String.format("Name: %s", name)
f"Name: {name}"
输出变量
"Name: " + name + ", Age: " + age
f"Name: {name}, Age: {age}"
代码量
较长,需要类型声明
极简,直接嵌入变量

💡 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 注释

类型JavaPython
单行注释
// 注释
# 注释
多行注释
/* 注释 */
"""注释"""
文档注释
/** Javadoc */
"""Docstring"""

六、为什么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同行。👋