网站首页 > 基础教程 正文
中篇:深入语法与面向对象编程
1. 深入Python语法
列表、元组、字典和集合的使用与操作
# Python列表示例
py_list = [1, 2, 3]
print(py_list)
// Java数组示例
int[] javaArray = {1, 2, 3};
System.out.println(Arrays.toString(javaArray));
- Python元组(不可变序列)
py_tuple = (1, 2, 3)
print(py_tuple)
- Python字典 vs Java HashMap
py_dict = {"name": "Alice", "age": 25}
print(py_dict["name"])
Map javaMap = new HashMap<>();
javaMap.put("name", "Alice");
System.out.println(javaMap.get("name"));
- Python集合
py_set = {1, 2, 3}
print(py_set)
字符串处理
- 切片
s = "Hello, World!"
print(s[7:12]) # 输出 "World"
- 格式化
name = "Alice"
age = 25
print(f"My name is {name} and I'm {age} years old.")
文件操作
with open('example.txt', 'r') as file:
content = file.read()
print(content)
对比Java中的FileReader或BufferedReader。
2. 面向对象编程(OOP)对比
定义类和创建对象
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
return f"Hello, my name is {self.name}."
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String greet() {
return "Hello, my name is " + name + ".";
}
}
继承和多态
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
def greet(self):
return f"{super().greet()} I'm in grade {self.grade}."
public class Student extends Person {
private String grade;
public Student(String name, int age, String grade) {
super(name, age);
this.grade = grade;
}
@Override
public String greet() {
return super.greet() + " I'm in grade " + grade + ".";
}
}
特殊方法与魔术方法
def __str__(self):
return f"Person named {self.name}"
@Override
public String toString() {
return "Person named " + name;
}
3. 模块与包管理
# 创建和使用模块
import mymodule
在Python中,任何.py文件都可以作为一个模块。导入包类似于Java中的import语句,但Python更灵活,支持相对导入等特性。
4. 异常处理
try:
x = 1 / 0
except ZeroDivisionError as e:
print(f"Caught an exception: {e}")
finally:
print("This will always execute")
try {
int x = 1 / 0;
} catch(ArithmeticException e) {
System.out.println("Caught an exception: " + e.getMessage());
} finally {
System.out.println("This will always execute");
}
5. 中级项目实践
选择一个中级项目,例如开发一个简单的Web爬虫,来练习上述概念。比较实现相同功能时,Python代码的简洁性和Java代码的结构化程度。通过实际项目的开发,更深刻地理解两种语言在不同应用场景下的优劣。
例如,在Python中,你可以利用requests库和BeautifulSoup库快速搭建一个网络爬虫;而在Java中,你可能需要依赖如Jsoup等库,并且代码量通常会比Python更多。这展示了Python在快速开发和原型设计方面的优势。
- 上一篇: 从IO到NIO:Java数据传输的进阶之路
- 下一篇: java 整型类型_Java基本类型-整型解读
猜你喜欢
- 2025-03-12 从IO到NIO:Java数据传输的进阶之路
- 2025-03-12 智能库存管理系统:让仓库管理变得简单高效
- 2025-03-12 java IO知识体系
- 2025-03-12 还不理解 Error 和 Exception 吗,看这篇就够了
- 2025-03-12 在Java里如何读取文件
- 2025-03-12 FileReader
- 最近发表
-
- 掌握SpringBoot-2.3的容器探针:实战篇
- kubernetes基础知识之驱逐节点(k8s驱逐节点后恢复)
- Linux环境中制作网络哨兵Sentinel Docker镜像
- k8s之配置CNI网络(k8s 网络配置)
- docker实战之:镜像更新(docker 镜像升级替换)
- 离线在docker镜像方式部署ragflow0.17.2
- Linux日常小技巧Docker打包(docker打包lnmp)
- 使用dockerfile构建docker镜像(docker通过dockerfile构建镜像命令)
- 「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作
- Kylin安装Dify(kylin安装部署)
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)