学习总结:Python与C#的区别


 

首先,Python与JAVA一样,是一门开源的、跨多平台的语言。而C#本身不是开源的,且只能运行在Windows平台上。

1. 编译性

Python是一门解释性脚本语言,源代码不需要编译可以直接运行,运行时Python字节码解释器解释源代码并执行相关命令。Python的源代码文件.py可以直接运行,如果装了Python在本地的话。而C#则需要编译为IL,运行时由CLR托管运行。

2. 数据类型

Python的数据类型比较少,基本数字类型只有5种,序列类型三种:字符串,元组,列表。映射类型一种:字典。C#的内置数据类型则有很多。Python没有double类型。Python没有char或byte类型来保存单一字符或8位整型。Python有个内置的复数数字类型,C#没有。

3. 面向对象

Python中代码(字段,函数)可以不放在类中,而是直接放在.py文件下,C#不允许这么做。

4. 代码块

Python缩进,C#是大括号。

5. Switch

Python没有

6. for/foreach

Python没有foreach,Python的for循环类似于C#的foreach。要实现C#的for循环功能,Python要借助于range()函数。

7. 列表解析/切片操作

C#没有这个功能。

8. 自增/自减运算

Python不支持

9. 变量声明

Python无需显式的声明变量,在赋值时自动声明。Python也不需要变量类型声明,因为是动态类型,解释器判断类型。C#需要先声明,并指定类型,再赋值。

10. 内建函数

Python的有些内建函数,可以无需通过类而直接调用。

11. 字符串

Python的字符串符号有3种: '   "    ''', 比较灵活,C#只有“。

12. 错误和异常

Python中try语句中有个else子句,C#没有。

13. 函数

Python的函数返回值相当灵活,可以根据判断条件返回不一样的数据类型,也可以以返回一个元组的形式返回多个数据类型。Python的函数没有定义返回值类型。

Python的函数可以作为参数传入函数,而C#实现类似的功能需要借委托来实现。

你可以在任何时候给Python的函数添加属性。

14. 内嵌函数

Python的函数体内仍然可以定义一个函数,称为内部/内嵌函数。

15. 函数的可变参数

Python的可变参数非常灵活,可以有非关键字可变长参数和关键字变量参数(字典)两种。C#只支持非关键字可变长参数,而且C#的可变参数都必须为同一类型。

16. 模块和文件

Python中一个文件被看作是一个独立模块,一个模块也可以被看作是一个文件。模块的文件名就是模块的名字加上扩展名.py。与其他可以导入类的语言不同,在Python中你导入的是模块或模块属性。C#中与模块功能类似的是名称空间,一个名称空间可以存在于多个文件甚至dll中,在导入名称空间后,其名称空间下的类可以直接使用。

17. 加载引用机制

因为Python代码是不编译的,因此其更适合通过设置搜索路径的方式访问其他的Python代码。而C#是通过添加引用的方式访问其他程序集中的代码。

18. 继承机制

Python支持多继承,体现了面向对象的合成的特性。C#不支持多继承。

19. 抽象性

Python不支持纯虚函数,也没有抽象方法。而C#则支持接口和抽象方法。

摘自 xufei96的专栏

相关内容

    暂无相关文章

评论关闭