120 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Java 开发者 Python 速查表
## 基础语法对比
| 概念 | Java | Python |
|------|------|--------|
| 打印 | `System.out.println("hi");` | `print("hi")` |
| 条件 | `if (x > 0) { ... }` | `if x > 0: ...` |
| 循环 | `for (String s : list) { ... }` | `for s in list: ...` |
| 方法 | `public String hello() { return "hi"; }` | `def hello() -> str: return "hi"` |
| 类 | `public class Foo { String bar; }` | `class Foo: bar: str` |
| 导入 | `import java.util.List;` | `from typing import List` |
## 数据类型对比
| Java | Python | 说明 |
|------|--------|------|
| `String` | `str` | 字符串 |
| `int` | `int` | 整数 |
| `double` | `float` | 浮点数 |
| `boolean` | `bool` | 布尔值 |
| `List<T>` | `list` | 列表 |
| `Map<K,V>` | `dict` | 字典 |
| `null` | `None` | 空值 |
| `true/false` | `True/False` | 布尔值 |
## 常用操作对比
### 字符串
```java
// Java
String s = "hello";
s.length(); // 长度
s.toUpperCase(); // 大写
s.contains("ll"); // 包含
s.replace("l", "r"); // 替换
String.format("%s %d", s, 42); // 格式化
```
```python
# Python
s = "hello"
len(s) # 长度
s.upper() # 大写
"ll" in s # 包含
s.replace("l", "r") # 替换
f"{s} {42}" # 格式化f-string
```
### 集合
```java
// Java
List<String> list = new ArrayList<>();
list.add("a");
list.get(0);
list.size();
Map<String, Integer> map = new HashMap<>();
map.put("key", 1);
map.get("key");
map.containsKey("key");
```
```python
# Python
list = []
list.append("a")
list[0]
len(list)
map = {}
map["key"] = 1
map.get("key")
"key" in map
```
## Python 特有概念
### 缩进代替花括号
```python
# Python 用缩进表示代码块
if x > 0:
print("正数") # 必须缩进
else:
print("非正数")
```
### 类型提示(可选)
```python
# Python 类型提示只是给编辑器看的,运行时不检查
def hello(name: str) -> str:
return f"Hello, {name}"
# 这样写也可以运行
def hello(name):
return "Hello, " + name
```
### 字典推导
```python
# 创建字典
d = {"key": "value"}
# 遍历
for k, v in d.items():
print(k, v)
# 安全访问
d.get("key") # 不存在返回 None
d.get("key", "默认") # 不存在返回默认值
```
## LangGraph 核心概念
| 概念 | 说明 | Java 类比 |
|------|------|----------|
| State | 节点间传递的数据 | DTO/Entity 类 |
| Node | 处理函数 | Service 方法 |
| Edge | 节点连接 | 流程控制 |
| Graph | 有向图 | 工作流引擎 |