Python是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库的一门弱类型的可移植,可扩展,可嵌入的解释型编程语言。Python从设计之初就是一门面向对象的语言,它有一个重要的概念,即一切皆对象。

语言特点

简洁、优雅、省略了各种大括号和分号,还有一些关键字,类型说明等等。

语言类型

解释型语言,运行的时候是一行一行的解释并运行。所以调试代码很方便,开发效率高。

第三方库

python是开源的,并且python的定位时任由其发展,应用领域很多。

比如Web、运维、自动化测试、爬虫、数据分析、人工智能等。Python具有非常完备的第三方库。

相关推荐:《Python视频教程》

缺点

1. Python的执行速度不够快。

Python是一门解释型语言,所以它的速度相较于c/c++ 会慢一些,但是并不影响使用。

因为现在的硬件配置都非常的高,基本没什么影响,除非是一些实时性比较强的程序可能会受到一些影响。但是也是有解决办法的,可以嵌入c\c++代码。

2.Python的GIL(Global Interpreter Lock)全局解释器锁。

GIL是什么

首先明确一点GIL并不是Python的特性,而是解释器的特性。它是Python的解释器Cpython用来做多线程的控制和调度用的全局锁。保证同一个时刻只有一个线程在运行。Python还有一些别的解释器,比如Jpython就没有GIL锁。Cpython现在已经成了python的实现标准,所以我们都说python具有GIL限制。

GIL的问题总体上来说是历史遗留的问题,以前的计算机的程序运行方式是单核多任务的模式,所以为了防止多个任务对同一资源进行同时的操作,竞争资源,才有了全局的解释器锁。但是随着近年来科技的进步,出现了多核,这样的话,全局锁就会限制多线程的并行。

解决方法

使用multiprocessing(多进程)替代Thread(多线程)

multiprocessing库的的出现弥补了Python多线程并发限制的不足,每个进程都有自己独立的GIL,因此也不会出现进程之间的GIL的争夺。

GIL只是Cpython解释器的产物,当然可以用其他的解释器来替代,但是由于其他的解释器,对C支持的不是很好,多以一直也不是很受欢迎。

Python社区也在对GIL对于多线程的支持的一些改进。比如增加线程的优先级(高优先级的线程可以迫使其他线程释放所有的GIl锁)。

如果对并行计算性能较高的程序可以考虑把核心部分写成C模块,或者直接用其他语言代替。

Python和Java相比

Python比Java要简单。Python是函数为一等公民的语言,而Java是类为一等公民的语言。Python是弱类型语言,而Java是强类型语言。

Python和C相比

对于使用:

Python的类库齐全并且使用简洁,很少代码实现的功能用C可能要很复杂。

对于速度:

Python的运行速度相较于C,绝对是很慢了。Python和CPython解释器都是C语言编写的。

编译性和解释型语言

解释型:就是边解释边执行。

编译性:编译后再执行。

python相比其他程序设计语言有什么特点_python语言和其他语言的区别相关推荐

  1. python语言的作者是_Python是一门动态语言

    [IT168 评论]动态语言的定义 动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用.它是一类 在运行时可以改变其结构的语言 :例如新的函数.对象.甚至代码可以被引进,已有 ...

  2. python语言的类型是_Python到底是强类型语言,还是弱类型语言?

    0.前言 我在上一篇文章中分析了 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Python 到底是不是强类型语言?我认为是,而 ...

  3. python脚本语言是什么意思_python为什么是脚本语言

    python的命名起源于一个脚本screenplay,每次运行都会使对话框逐字重复.由著名的"龟叔"Guido van Rossum在1989年圣诞节期间编写. Python为我们 ...

  4. python和c语言哪个效率高_Python运行效率优于C语言的功能简介

    C语言和Python运行效率你在实际应用的过程中前者与后者你更喜欢应用那个?本文要介绍的是C语言与Python运行效率对比,突出前后者的不同以及在相关应用过程中的相关功能的介绍.以下是内容介绍. Py ...

  5. python的可迭代对象是什么意思_python可迭代对象和迭代器区别

    python内置迭代对象: 字符串,列表,元组,文件,字典 # 字符串迭代 str = "conding make me happy" for c in str: print(c, ...

  6. python中的可迭代是什么意思_Python可迭代跟迭代器的区别

    想必大家都学过zip()高级函数吧,zip()即可以将两个可以迭代的对象合在一起,请看如下代码: l1 = [1, 2, 3, 4] l2 = [11, 22, 33, 44] l = zip(l1, ...

  7. [Python3]Python面向对象的程序设计

    [Python3]Python面向对象的程序设计 一.面向对象的程序设计的由来 1.第一阶段:面向机器,1940年以前 最早的程序设计都是采用机器语言来编写的,直接使用二进制码来表示机器能够识别和执行 ...

  8. C语言程序设计学习笔记:P1-程序设计与C语言

    本系列博客用于记录学习浙江大学翁恺老师的C语言程序设计,系列笔记链接如下: C语言程序设计学习笔记:P1-程序设计与C语言 C语言程序设计学习笔记:P2-计算 C语言程序设计学习笔记:P3-判断 C语 ...

  9. python语言程序的特点_Python语言有哪些优点?

    2018年主流的十大编程语言中,Python排名第一,被广大使用者誉为"更美好"编程语言.Python语言自身的语言特点,使得他深受开发者的喜爱,那么Python语言到底有哪些优点 ...

最新文章

  1. 假如计算机是中国人发明的,那代码应该这么写
  2. RESTful服务最佳实践
  3. 使用深度神经网络进行自动呼叫评分(二)
  4. python程序员又叫什么-Python程序员鲜为人知但你应该知道的17个问题
  5. 图解MySQL数据库的安排和把持-1
  6. 从圆的面积说起 循环小数 PI
  7. 标准化工作导则2020_最新版 GB/T 1.12020 标准化工作导则 第 1 部分:标准化文件的结构和起草规则标准解读...
  8. gihosoft android 教程,Gihosoft Free Android Data Recovery
  9. dsm php,docker dsm是什么?
  10. JavaScript玩转机器学习:模型转换
  11. DPVS_吊打面试官的项目——DPVS
  12. 5G~ SON和MDT
  13. STM32精确延迟1us和1ms的函数
  14. 方维直播最新版服务端网站搭建3.1--1
  15. TOMCAT HTPPS
  16. iptables --algo 字符串匹配算法 bm kmp
  17. python照片查重_Python 进行excel查重
  18. 编写一个有两个线程的程序, 第一个线程用来计算2~100000之间的素数的个数, 第二个线程用来计算100000~200000之间的素数的个数,最后输出结果
  19. 计算机组成原理习题——日常记录
  20. Golang 入门 : 切片(slice)

热门文章

  1. 密信零信任安全解决方案
  2. layui的exports插件,导出excel时,长数字为科学计数法解决
  3. 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;
  4. 藏拙的搜索引擎技术是2008年全宇宙最耀眼的搜索引擎技术吗?
  5. 区别:秒s、毫秒ms、微秒μs、纳秒ns、皮秒ps、飞秒fs每两级之间的换算以及之间的关系
  6. php添加水印,水印平铺整个图片
  7. Resilience4j
  8. SAE英文会议论文模板及翻译
  9. 洛谷-P4287 双倍回文(Manacher)
  10. Java求职记录(20年-重庆/成都)