写在前面
如果你是一个有经验的Java程序员,想转Python,恭喜你——你已经会了一半。
Python和Java都是高级语言,很多概念是相通的。变量、循环、条件、面向对象、异常处理……这些你都学过。区别只是语法和思维方式。
这篇文章帮你快速上手Python,重点讲Java程序员最容易踩的坑和Python最爽的语法糖。
环境搭建
Java的JDK vs Python的解释器
Java需要JDK,Python需要Python解释器。但Python的环境管理比Java简单得多。
推荐用pyenv管理Python版本:
# 安装pyenv
curl https://pyenv.run | bash
安装Python 3.12
pyenv install 3.12.0
pyenv global 3.12.0
验证
python --version
或者用conda(适合数据科学方向):
# 安装Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
创建环境
conda create -n myproject python=3.12
conda activate myproject
IDE选择
| Java IDE | Python IDE | 推荐度 |
|---|---|---|
| Eclipse | — | 别用了 |
第一个Python程序
Hello World
Java:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Python:
print("Hello World")
没了。没有类,没有main方法,没有分号。一行搞定。
变量声明
Java:
String name = "张三";
int age = 25;
double salary = 15000.0;
boolean isWorking = true;
Python:
name = "张三"
age = 25
salary = 15000.0
is_working = True
关键区别:
- Python不需要声明类型(动态类型)
- 变量名用下划线命名(snake_case),不用驼峰
- 布尔值是
True/False,不是true/false - 没有分号,缩进就是语法
字符串操作
Java:
String name = "张三";
String greeting = "你好," + name;
int len = name.length();
String upper = name.toUpperCase();
boolean contains = name.contains("三");
Python:
name = "张三"
greeting = f"你好,{name}" # f-string,比Java的String.format好用10倍
length = len(name)
upper = name.upper()
contains = "三" in name # 直接用in关键字
Python爽的地方:
- f-string格式化:
f"你好,{name}"比String.format()简洁太多 in关键字:"三" in name比.contains()直观len()函数:比.length()统一,列表字典都能用
核心差异速览
1. 动态类型 vs 强类型
Java是静态强类型,Python是动态强类型。
x = 10 # int
x = "hello" # 变成str了,完全合法
x = [1,2,3] # 变成list了,也合法
Java里这会编译报错,Python里完全OK。方便是方便,但也要小心——类型错误只在运行时才会发现。
2. 缩进 vs 花括号
Java用{}定义代码块,Python用缩进(通常是4个空格)。
if age > 18:
print("成年人") # 缩进4个空格
if salary > 10000:
print("高薪") # 再缩进4个空格
else:
print("未成年")
踩坑提醒: Tab和空格不要混用,否则会报IndentationError。Python 4用空格缩进就对了。
3. 没有分号
Python不需要分号。一行就是一个语句。想写多行用\换行或者用括号。
4. 注释
# 单行注释(和Java的//一样)
'''
多行注释
其实这是多行字符串
但Python里常用它当多行注释
'''
文件操作对比
Java读文件:
import java.nio.file.*;
String content = Files.readString(Path.of("data.txt"));
Python读文件:
with open("data.txt", "r") as f:
content = f.read()
Python的with语句就是Java的try-with-resources,自动关闭文件。
总结
| 维度 | Java | Python |
|---|---|---|
| 速度 | 快 | 慢(但够用) |
Python追求的是简洁和实用,能一行写完的绝不写两行。放下Java的"仪式感",拥抱Python的"随意感",你就入门了。
下一篇我们聊Python的数据结构——列表、字典、集合,这些才是Python真正的杀手锏。
本系列持续更新中,关注不迷路。