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. C#循环给多个控件赋值
  3. 加油站会员管理系统源码php_加油站使用会员管理系统,如何解决行业瓶颈?
  4. php template strring,PHP字符串函数
  5. composer 设置版本号_composer 安装及使用
  6. phalcon执行原始SQL查询语句
  7. 感应联动不是梦,穿透屏幕“闻”见花香你敢信?
  8. 3h精通OpenCV(二)-基本功能
  9. C语言图形库简单对比及EGE库的安装小手册
  10. 强中更有强中手:遇到CSDN比吾进步还快的博主
  11. interview-db
  12. 卸载软件时,出现解压缩支持文件时出错,灾难性故障--转载
  13. 华为U5800刷机,Root权限
  14. python爬取拉勾网职位信息_Python爬虫-拉勾网职位爬取
  15. 威联通nas利用calibre-web搭建个人数字图书管理系统
  16. android盒子共享,Android使用SMB协议共享电脑内文件方法
  17. 2020年Java面试题及答案_Java面试宝典_Java笔试题(持续更新中)
  18. element-ui 级联选择器el-cascader踩坑
  19. 用循环不定式来证明冒泡排序的正确性
  20. 博通语法纠错技术方案入选ACL2022,论文详细解读

热门文章

  1. SQL——分组统计查询
  2. HTML中基本元素基本设置(例如:字体颜色、大小、背景颜色)。
  3. 纠正pylint no member报错
  4. 【狮子数学】chapter6-05-阿贝尔定理(第99讲)
  5. 人生启示录:被称为世上最经典的25句话(转)
  6. shutdown配合at命令 实现定时关机,重启---
  7. 怎样把软件从计算机移到桌面上,怎么把电脑软件移动到D盘
  8. 语音增强--维纳滤波介绍及MATLAB实现
  9. 全链路稳定性背后的数字化支撑:阿里巴巴鹰眼技术解密
  10. Windows 系统画图软件如何切换输入文字的方向