定义变量
Python 和 JS 均为弱类型语言,即在定义一个变量时,只需声明其名字,而无需显式声明其类型。而C和VB则于此不同。例如:
int i = 1; // C
Dim i As Integer = 1 ' VB
var i = 1; (全局变量) 或直接 i = 1; (局部变量) // JS
i = 1 # Python
再例如声明一个字符串类型:
Char[] str = "1adcfeee"; // C 在C++和C#中可直接使用 String 定义
Dim str As String = "1adcfeee" ' VB
var str = "1adcfeee"; (全局变量) 或直接 str = "1adcfeee"; (局部变量) // JS
str = "1adcfeee" # Python
定义列表(在Python中类似的结构还有元组、字典等,js中亦有字典)
在 Python 和 js 中, 不同类型可以储存在同一个列表中,但如果C类语言或VB需要在一个列表中储存不同类型的数据,就需要结构体或者共用体或者泛型或者地址指针或者反射等一系列骚操作。
int[] l = [1, 2, 3, 4, 5]; // C
Dim l as List<Integer> ' VB
var l = [1, 2, 3, 4, 5]; 或直接 i = [1, 2, 3, 4, 5]; // JS
l = [1, 2, 3, 4, 5] # Python
l = [1, 'a', 'abs', 4.22, 5] # Python 可以储存不同类型的数据在同一列表中
A = (1, 2, 4, 'm') # Python 元组,其中的值自定义起便无法被修改。
D = {'a':1, 'c':3, 'd':4} # Python 字典,可通过键值Key取得对应的Value
循环与判断
在整体结构上,Python 和 VB比较相近,都是靠缩进来定义作用域。以For循环为例:
// C 类语言
for(int i = 0; i < l.length; i++){
......;
}
// VB
For i In l
i.....
Next
// JS
for(int i = 0; i < l.length; i++){
......;
}
# Python
for i in l:
i......
判断以If为例:
// C 类语言
if(true){
......;
}else if(true){
......;
}else{
......;
}
// VB
If True Then
.....
Elif True Then
.....
Else
.....
End If
// JS
if(true){
......;
}else if(true){
......;
}else{
......;
}
# Python
If True:
......
Elif True:
......
Else:
......
Python 是表达型语言,具有丰富的类库和基础库,其中有很多在底层都是由C写成的,因此Python在运行效率上其实是不如C语言的。但它精简的结构、易于理解的代码方式和强大的机器学习支持得到了很多人的青睐。也希望以后计算机的发展,可以弥补高层次语言在运行效率和内存占用上的不足。
关于其它的一些细节:
例如 Pyhon 中对于类的定义:
class ListNode:
Value = '' # 属性 1
Next = None # 属性 2
def __init__(self, value): # 初始化函数,self是默认的参数,剩下的需要传入
self.Value = value
self.Next = None
def set_next(self, next): # 其它方法 1 ,self是默认的参数无需传入
self.Next = next
def get_value(self): # 其它方法 2 ,self是默认的参数无需传入
return self.Value
def get_next(self): # 其它方法 3 ,self是默认的参数无需传入
return self.Next
Pyhon 中的 main 函数:
if __name__ == '__main__': # 主函数开始
my_list = List()
for i in range(0, 10):
my_list.add(i)
my_list.print_list()
my_list.reverse()
my_list.print_list()
对于 Python 文件来说,如果有主函数就从主函数开始执行。如果在文件中有无缩进,直接顶格写的、不属于任何类或函数代码,则默认也为主要代码,会顺序执行。
在 Python 中还有一点需要注意,无论是类还是方法,都需要先定义结束,才能调用使用。因此当类别非常多且方法非常复杂时,会使代码非常臃肿,建议将方法封装为类,再将每个类放在单独的文件中,再引用到主代码里,这便于理解和维护,也是比较好的习惯。