Python与C#的区别

学习总结: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的专栏

时间: 2024-08-25 02:28:45

Python与C#的区别的相关文章

python 2和python 3有什么区别

看到这个题目大家可能猜到了我接下来要讲些什么,呵呵,对了,那就是列出这两个不同版本间的却别! 搜索一下大家就会知道,python有两个主要的版本,python2 和 python3 ,但是python又不同于其他语言,向下兼容,python3是不向下兼容的,但是绝大多数组件和扩展都是基于python2的,下面就来总结一下python2和python3的区别. 1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串

Python 的 “==” 和 “is”区别用法介绍

Python中比较两个对象是否相等,一共有两种方法,简单来说,它们的区别如下: is 是比较两个引用是否指向了同一个对象(引用比较). == 是比较两个对象是否相等. >>> a = [1, 2, 3] >>> b = a >>> b is a # a的引用复制给b,他们在内存中其实是指向了用一个对象 True >>> b == a # 当然,他们的值也是相等的 True >>> b = a[:] # b通过a切片获

python数组的使用区别对比

Python 循环数据很简单  代码如下 复制代码 for i in range(0,10):  G_List(i)表示从0 到 10 读起来都简单 循环数组  代码如下 复制代码 for a in arrs: print a 数组如下 1.Python的数组分三种类型: (1) list 普通的链表,初始化后可以通过特定方法动态增加元素. 定义方式:arr = [元素] (2) Tuple 固定的数组,一旦定义后,其元素个数是不能再改变的. 定义方式:arr = (元素) (2) Dictio

【Python数据挖掘课程】六.Numpy、Pandas和Matplotlib包基础知识

        前面几篇文章采用的案例的方法进行介绍的,这篇文章主要介绍Python常用的扩展包,同时结合数据挖掘相关知识介绍该包具体的用法,主要介绍Numpy.Pandas和Matplotlib三个包.目录:        一.Python常用扩展包         二.Numpy科学计算包         三.Pandas数据分析包         四.Matplotlib绘图包         前文推荐:        [Python数据挖掘课程]一.安装Python及爬虫入门介绍    

《Python硬件编程实战》——2.2 Python的两大版本

2.2 Python的两大版本 目前Python主要有两个大的版本: Python 2 Python 3 Python两大版本的不同写法 关于两种版本的对比,也常写成为 Python 2.x VS Python 3.x Python 2 VS Python 3 py2 VS py3 读者以后看到类似写法,明白其指的是Python 2和Python 3就可以了.2.2.1 Python版本历史 为了更深入地理解Python 2和Python 3的区别,此处先简要介绍Python版本的发展历史. P

Python确实比较慢,但我不在乎

生产力的增长是靠牺牲性能换来的.这篇文章不再讨论asyncio(异步IO库)在Python中的运用,而是谈谈最近我一直在思考的一个问题:Python的运行速度.同那些不了解Python的人相比,我属于Python的忠实粉丝,而且我使用Python的频率非常高.目前人们抱怨Python最多的是它的运行速度慢.通常,大部分人拒绝使用Python是因为它比某某语言还慢.尽管如此,我还是建议你使用Python,理由如下: 速度不再重要 以前,运行程序需要花费很长的时间.CPU和内存的售价是比较昂贵的,衡

如何自动备份公司数据到云存储

背景 做过运维的都知道,最怕就是数据丢失,其它故障什么都好说,数据没了,那可是要死人的,所以DBA这个岗位在公司都比较重视,当然薪水也不错,一个合格的DBA要做的事很多,远不止只做数据备份恢复工作(数据备份恢复是最基本基本的了),像调优.数据库设计什么的也都需要参与,甚至在项目立项时就要介入了. 之所以说了那么多关于DBA的事,就是简单跟大家铺垫下,告诉大家数据对公司或个人来讲是多么的重要,那既然重要,我们就要备份好它,一般做法都是数据库本机留一个备份,然后再异地备份一份,但是随着目前云成为大家

go 语言 优势及 主要用途

1.Go有什么优势 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了. 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高. 语言层面支持并发,这个就是Go最大的特色,天生的支持并发,我曾经说过一句话,天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢?Go就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发. 内置r

把项目从Python2.x移植到Python3.x的经验总结_python

 经历移植jinja2到python3的痛苦之后,我把项目暂时放一放,因为我怕打破python3的兼容.我的做法是只用一个python2的代码库,然后在安装的时候用2to3工具翻译成python3.不幸的是哪怕一点点的改动都会打破迭代开发.如果你选对了python的版本,你可以专心做事,幸运的避免了这个问题. 来自MoinMoin项目的Thomas Waldmann通过我的python-modernize跑jinja2,并且统一了代码库,能同时跑python2,6,2,7和3.3.只需小小清理,