1. features
Python无需声明类型
Python
Python的Iterable对应Java的Iterable
Python中的generator对应Java的Stream
Python使用 for in
进行循环
2. 控制语句
2.3. 数据类型
布尔类型表示为bool,而不是Java的boolean
bool类型的值为首字母大写的True或False
isinstance(obj, type) 同Java的instanceOf()
2.4. 下划线开头
__foo__: 这只是一个约定,是 Python 系统使用不会与用户名冲突的名称的一种方式
_foo: 这只是一个约定,是程序员指示变量是私有的(无论在 Python 中是什么意思)的一种方式
__foo: 这具有真正的意义:解释器用 _classname__foo 替换这个名称,以确保该名称不会与另一个类中的相似名称重叠。
2.6. 列表与数组
Python也支持列表(list)类型和数组(array)类型
列表是由一系列按特定顺序排列的元素组成,可以将任何东西加入列表中,其中的元素之间没有任何关系;
Python中的列表(list)用于顺序存储结构。它可以方便、高效的的添加删除元素,并且列表中的元素可以是多种类型。
数组也就是一个同一类型的数据的有限集合。
列表list与数组array的相同点是都可以根据索引来取其中的元素
列表list与数组array的不同点:
-
列表list中的元素的数据类型可以不一样。数组array里的元素的数据类型必须一样;
-
相对于array,列表会使用更多的存储空间
实际开发中很少使用array,需要数组的场景中更多地会使用Numpy的数组
Python中的List时间复杂度与Java的ArrayList一样
列表获取子列表比较简单可以使用list[0:2]的方式
2.7. list vs tuple
list与tuple都可以存储多个不同类型的数据,但tuple是不可变的。
编写Java代码时有时希望方法能返回彼此关联的多个数据(例如返回一个人的性别和年龄),一种方式是将这些数据封装为一个实体类, 另一种方式是返回一个集合或者数组,这些方法实际上都不及tuple更合适。