Python基础:四、python的优缺点
python是一门动态解释性的强类型语言
python的优点:
1. python的定位是"优雅"、"明确"、"简单"
python程序看上去总是简单易懂,初学者学python,不但入门容易,二缺将来深入下去,可以边啊些那些非常复杂的程序。
2. 开发效率高
python有强大的第三方库,基本上你想通过计算机实现任何功能,python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
3. 高级语言
当你用python语言编写程序的时候,你无需开了诸如如何管理程序使用的内存一类细节。
4. 可移植性
由于python的开源本质,python以及高被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有的python程序无需修改就可以在市场上所有的系统平台上运行。
5. 可扩展性
如果你需要你的一段关键代码运行的得更快,或者希望某些算法不公开,你可以把你的部分程序用c或c++编写,然后在你的python程序中使用它们。
6. 可嵌入性
你可以把python嵌入你的c\c++程序,从而向你的程序用户提供脚本功能。
python的缺点:
1. 速度慢
python的运行速度相比于c语言确实慢了很多,跟Java比也要慢写,因此这也是很多人不屑于使用python的原因,但其实这里所指的运行速度在大多数情况下用户是无法直接感受到的,必须借助测试工具才能体现出来,比如你用c运行一个程序花了0.01秒,用python是0.1秒,这样c语言比python快了10倍,算是很夸张了,但是你是无法用肉眼直接感知的,因为一个正常人所能感知的时间最小单位是0.15-0.4s左右。其实在大多数情况下,python已经完全满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎(这种情况下还是应该用c去实现)。
2. 代码不能加密
因为python是解释型语言,它的源代码都是以明文的形式存放的。如果你的项目要求源代码必须是加密的,一开始就不应该用python实现
3.线程不能利用多CPU问题
这是python被人诟病最多的一个缺点,GIL即全局解释器(GlobalInterpreterLock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行。python的线程是操作系统的原生线程,在Linux上为pthread,在Windows上为Winthread,完全由操作系统调度线程执行。一个python解释器进程内有一条主线程,以及多条用户程序执行的线程,即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行(有折中方法)。
当然,python还有一些其他的小缺点,这这就不一一列举了。任何一门语言都不是完美的,都有擅长和不擅长做的事情,建议不要用一个语言的劣势和另一个语言的优势去比较
语言只是一种工具,是实现程序设计师思想的工具,就像我们之前中学学集合时,优点时候需要圆规,有的时候需要用三角尺一样,拿相应的工具去做它最擅长的工作才是最正确的选择。
Python基础:四、python的优缺点的更多相关文章
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- 二十一. Python基础(21)--Python基础(21)
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性: #类.属性: 调用的就是类中的属性 #对象.属性: 先从自己的内存空间里找名 ...
- Python基础-week01 Python安装/变量/输入/及循环语句使用
一.Python介绍 (1).目前Python主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,You ...
- Python基础+Pythonweb+Python扩展+Python选修四大专题 超强麦子学院Python35G视频教程
[保持在百度网盘中的, 可以在观看,嘿嘿 内容有点多,要想下载, 回复后就可以查看下载地址,资源收集不易,请好好珍惜] 下载地址:http://www.fu83.cc/ 感觉文章好,可以小手一抖 -- ...
- python基础7 ---python函数
python基础知识 一.闭包函数 1.闭包函数的定义:在一个内部函数中,在对外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包. 2.闭包函数的特点:自带作用域和延迟计算 补 ...
- python基础1 ---python简介
python基础 一.python前言 1.什么是编程语言 编程语言是程序员与计算机之间沟通的介质. 2.编程语言的分类 机器语言:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集 ...
- Python基础-1 python由来 Python安装入门 注释 pyc文件 python变量 获取用户输入 流程控制if while
1.Python由来 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚 ...
- python基础实践 -python是一门动态解释性的强类型定义语言
python是一门动态解释性的强类型定义语言 Python能做什么? Python是一门综合性的语言,你几乎能在计算机上通过Python做任何事情,以下是Python应该最广泛的几个方面: 1.网络应 ...
- Python基础之Python分类
python环境 编译型: 一次性将所有程序编译成二级制文件,开发效率极低,因为一旦出现BUG所有的程序需要全部重新编译 缺点: 开发效率低,不能跨平台 优点: 执行速度快 解释型: 当程序执行时,一 ...
- Python基础之:Python中的类
目录 简介 作用域和命名空间 class 类对象 类的实例 实例对象的属性 方法对象 类变量和实例变量 继承 私有变量 迭代器 生成器 简介 class是面向对象编程的一个非常重要的概念,python ...
随机推荐
- 最大流 USTC1280
挺有意思的一题,最小路径之后最大流 /************************************************************** 作者:陈新 邮箱:cx2pirate ...
- linux目录说明
/etc/passwd 用户信息文件 [root@web01 ~]# cat /etc/passwd root: x: : : root: /root: /bin/bash 可登录用户 bin: x ...
- css实现文本块在容器中垂直居中
效果如图: css代码: .textContainer { display: -webkit-box; -webkit-box-orient: vertical; -webkit-box-pack: ...
- js 获取字符串中所有的数字和汉字
var re1 = /(\d{1,3})+(?:\.\d+)?/g var re2 = /[\u4e00-\u9fa5]{2,}/g var str="11我22们33两个"; v ...
- IP通信基础课堂笔记----第一章(重点)
七层数据传输:应用层.表示层.会话层.传输层.网络层.数据链路层.物理层 1.物理层:设备----集线器.Hub 两台主机的最大跨度----2500m 在物理层工作----(1)所有设备都处于同一冲突 ...
- SQL Server分页查询的万能存储过程
CREATE proc [dbo].[p_paging]@tableName varchar(8000), --表名.视图名@indexCol varchar(50) = 'id', --标识列名(如 ...
- 【解决】Server Tomcat v7.0 Server at localhost failed to start.
Server Tomcat v7.0 Server at localhost failed to start. 出现此原因是因为servlet-name不匹配 修改一致即可
- Knowledge From Practice(JavaScript)
1.HTML事件对象 onmouseover:鼠标移入事件 onmouseout:鼠标移出事件 onmousedown:鼠标落下事件 onmouseup:鼠标抬起事件 例子: onclick:鼠标点击 ...
- ORACLE11G R2 RAC的进程启动流程
简要说明ORACLE11GR2 RAC的进程启动流程: 1.启动流程概览图: 二.RAC启动流程的梳理: 第一层:OHASD 启动:(OHASD派生) 1.CSSDAGENT负责启动CSSD的AGEN ...
- HBase原理和设计
转载 2016年1月10日:http://www.sysdb.cn/index.php/2016/01/10/hbase_principle/ 简介 架构 数据组织 原理 RS定位 region写入 ...