问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Python有什么缺点呢?

发布网友 发布时间:2022-04-24 09:51

我来回答

6个回答

热心网友 时间:2022-04-06 02:59

1. - 运行速度慢,因为Python是解释型语言,是一种高级语言,代码会在执行的时候,一行一行的使用解释器翻译成底层代码,翻译成机器码,而这个过程非常耗时,所以他运行过程中,比很多语言的代码都慢了很多。
- 线程不能利用多CPU,这是Python最大的确定,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。
Python的优缺点可以看看传智播客的社区,里面很多技术老师写的相关文章。并且有学习线路图适合小白学习,每个板块下面都有配套视频。

热心网友 时间:2022-04-06 04:17

python的整个系统,我其实有非常多的不满。但是用任何一门语言都是取舍问题,如果有一门语言,库够多,已读,易用,性能高,我毫不犹豫立刻转过去。python的强处在于庞大的库,还有非常好的易读和易用性。但是相比来说,性能一直是个问题。python的实现性能大约和C相差五倍上下。如果是大规模计算问题,大约能差10倍以上。当然,我们可以写C扩展,但是这就不是使用python了。我们也可以说,很多时候我们不需要这么快的速度。这是个事实,但是不改变python性能差的事实。 python不但性能差,还有GIL这个玩意。以至于我现在对高并发计算都采取多进程的模式。多进程模式的通讯效率肯定比多线程低,而且麻烦。
另外,python在底层设计上,也表现出很强的实用主义倾向。这是比较外交术语的词汇,更加直白的说法应当是,混乱,不知所谓。在闭包设计上采用free variable设计,而不是lisp中的environs设计。区别?你试试看在外层闭包中from lib import *。由于引入不定个数名称,free variable无法处理。类似的问题还有LEGB规则,新手往往要花很长时间研究这个例子究竟是怎么错的: a = 1 def f(): print a a = 2 我勒个去,这种反直观*的事情都有,还敢说自己易读。
还有坑爹的元编程,这东西根本是坑爹中的坑爹货。如果你用过多重继承,大概就知道python的整个OO系统看起来根本是大型的仿真,到处都是乱糟糟的。C++怎么解决多重继承的?你最好别用(真心说,这可比python更加坑爹)。java怎么解决多重继承的,只能继承Interface。其实这是变相的变成了Interface-Implement模式。python怎么解决的?MRO!为什麽一个类加个__metaclass__就会改变性质啊,为什麽一个类去生成另一个类的写法是——我基本不记得了,反正web.py里面有用到,需要的话去炒栗子吧。为什麽方法要隐藏居然要改名字加__啊。你到底是在做OO还是在看起来像OO的东西上狂打补丁啊魂淡。
lambda表达式弱智。我和人讨论过,lambda是否是图灵完备的。结论还是完备的,不过需要借助Y combinator。何必呢?由于强调lambda的快速特性,因此将lambda强制在一行以内(没有结束标记),导致python其实是没有匿名函数的。一个callback数组写的难过死。
语法糖太多了点,当然,这是纯粹的个人感觉。语法糖是把双刃剑,用的好,可以简化编写和阅读,但是太多,往往容易引入语法混乱和额外的约束。
另外,语言的自构建特性混乱。虽说不是每门语言都强调自构建特性,但是通常而言,都是使用C实现一个内核,由内核实现一些基础操作。再由基础操作实现更复杂的操作。每层的边界都是比较清晰的。谁来告诉我,python中有多少库在移植时是由纯python实现的?库的相互依赖层级是?
python的沙盒化也是个问题,如果沙盒做的够好,我完全可以把python作为一个客户级别的平台。用C写一个很简单的类似浏览器的东西,下载一个URL的python包回去运行(或者仅仅检查更新)。从而保证本地效果/跨平台/安全性。现在?一个都保证不了。我连把一个python包转移到另一台同构设备上都很麻烦(如果两者不是严格匹配,例如系统差异,系统版本差异)无论是web开发还是移动终端开发都必须走传统模式。

热心网友 时间:2022-04-06 05:52

1.运行速度,有速度要求的话,用C++改写关键部分吧。不过对于用户而言,机器上运行速度是可以忽略的。因为用户根本感觉不出来这种速度的差异。

2.既是优点也是缺点,python的开源性是的Python语言不能加密,但是目前国内市场纯粹靠编写软件卖给客户的越来越少,网站和移动应用不需要给客户源代码,所以这个问题就是问题了。国随着时间的推移,很多国内软件公司,尤其是游戏公司,也开始规模使用他。

3. 构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。

热心网友 时间:2022-04-06 07:43

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python源代码同样遵循GPL(GNU General Public License)协议。

Python语言的优缺点

优点

简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

易学:Python极其容易上手,因为Python有极其简单的说明文档 [11]  。

易读、易维护:风格清晰划一、强制缩进

用途广泛

速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。 [7] 

免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。

解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。

运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。

在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。相对于Lisp这种传统的函数式编程语言,Python对函数式设计只提供了有限的支持。有两个标准库(functools, itertools)提供了Haskell和Standard ML中久经考验的函数式程序设计工具。

可扩展性、可扩充性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(glue language)使用。使用Python将其他语言编写的程序进行集成和封装。在Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。《Python技术手册》的作者马特利(Alex Martelli)说:“这很难讲,不过,2004 年,Python 已在Google 内部使用,Google 召募许多 Python 高手,但在这之前就已决定使用Python,他们的目的是 Python where we can, C++ where we must,在操控硬件的场合使用C++,在快速开发时候使用 Python。”

可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。Python的作者设计*性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定(而C语言是用一对花括号{}来明确的定出模块的边界,与字符的位置毫无关系)。通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。

高级动态编程:虽然Python可能被粗略地分类为“脚本语言”(script language),但实际上一些大规模软件开发计划例如Zope、Mnet及BitTorrent,Google也广泛地使用它。Python的支持者较喜欢称它为一种高级动态编程语言,原因是“脚本语言”泛指仅作简单程序设计任务的语言,如shellscript、VBScript等只能处理简单任务的编程语言,并不能与Python相提并论。

做科学计算优点多:说起科学计算,首先会被提到的可能是MATLAB。除了MATLAB的一些专业性很强的工具箱还无法被替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。和MATLAB相比,用Python做科学计算有如下优点:

● 首先,MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。

● 其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。

● 最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。

缺点

单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此*,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

给初学者带来困惑:独特的语法,这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。

运行速度慢:这里是指与C和C++相比。Python开发人员尽量避开不成熟或者不重要的优化。一些针对非重要部位的加快运行速度的补丁通常不会被合并到Python内。所以很多人认为Python很慢。不过,根据二八定律,大多数程序对速度要求不高。在某些对运行速度要求很高的情况,Python设计师倾向于使用JIT技术,或者用使用C/C++语言改写这部分程序。可用的JIT技术是PyPy。

热心网友 时间:2022-04-06 09:51

运行速度慢,因为Python是解释型语言,是一种高级语言,代码会在执行的时候,一行一行的使用解释器翻译成底层代码,翻译成机器码,而这个过程非常耗时,所以他运行过程中,比很多语言的代码都慢了很多。

热心网友 时间:2022-04-06 12:16

Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
python语言的优点
⑴作为初学python的科班出身的小白,python非常简单,非常适合人类阅读。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
⑵易学。python虽然是用c语言写的,但是它摈弃了c中非常复杂的指针,简化了python的语法。
⑶Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。Python希望看到一个更加优秀的人创造并经常改进。
⑷可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!
⑸在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
⑹Python既支持面向过程的函数编程也支持面向对象的抽象编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
⑺ 可扩展性和可嵌入性。如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
⑻丰富的库。Python标准库确实很庞大。python有可定义的第三方库可以使用。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
⑼ Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。
⑽规范的代码。Python采用强制缩进的方式使得代码具有极佳的可读性。
python语言的缺点
很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此*,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。(对很多用户而言这也不算是*)
⑴运行速度,有速度要求的话,用C++改写关键部分吧。不过对于用户而言,机器上运行速度是可以忽略的。因为用户根本感觉不出来这种速度的差异。
⑵既是优点也是缺点,python的开源性使得Python语言不能加密,但是目前国内市场纯粹靠编写软件卖给客户的越来越少,网站和移动应用不需要给客户源代码,所以这个问题就是问题。不过随着时间的推移,很多国内软件公司,尤其是游戏公司,也开始规模使用他。
⑶ 构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
15份的摘抄,要短的我是写作业的,差不多一份要一张纸 肯定会给高分_百度... 补牙前怎么样杀神经? ...我妈让我把牙堵上,想知道是怎么堵?要是杀神经,具体流程是什么样的... 汽车电瓶断电开关断正极还是负极 汽车电瓶断电开关断正极吗 为什么汽车电瓶断电后要断开负极 亳州市教师资格证考哪些科目 请问在观澜坐哪路公交车去深圳大学 陈旧隙腔性脑梗塞能喝酒吗?要喝的话多少为好?谢谢……! 男女朋友分手,怎样消除房产证上女方的名字 ...加了女方的名字 现在女方要提出分手 这房子该怎么处理? python 什么时候使用 weakref 关于前端转 Node 不知道大家有什么看法 在python中出现这种情况为什么 小天才电话手表z2y主板坏了,能修吗? 小天才手表怎么卸电池 scrapy 在pycharm 中为什么没有代码提示? Python里的(array:list)->int 啥意思? python是动态类型的?到底算是强类型的还是弱类型的呢 怎样才能学好弱类型语言,比如Python Python是不是弱类型?如果是的话是不是仅仅因此就不需要泛型了? Python是不是弱类型?如果是的话是不是仅仅因此就不需要泛型了_百度知 ... python是动态语言,是不是弱类型语言 怎么总有人说python是弱类型语言 华为收购新亚制程多少股份 可以把华为账号中的游戏数据转移到另一个华为账号吗? 在不开机的情况下,怎样给手机电池放电,手机不能开机!麻烦了? 华为向国开行转让应收账款 相关部门提示风险 华为的资本债务结构会发生如何变化? 任正非有意出售5G核心技术,卖给哪个公司的可能性最大? 荣耀被卖给谁了 华为荣耀卖给谁了? 小天才手表拆卸电池可以消除密码吗 小天才电话手表Z2不能充进电怎么办? 描绘爱情的诗词 手机电池如何人工放电 梦见自己跟别人在救火,火打不息? 老是梦见着火了救火←但没有全灭了我总觉的会有不好的事要发生请专业... 梦见自己去加油,可是油站冒出好多浓烟感觉爆炸的样子,我就把车丢了跑出去,一会就爆炸了 梦见加油站是什么意思? 梦见自己把加油站点燃还冒烟有点火苗 多字猜一生肖 很多人说颗粒板是最差的板材,这到底是为什么呢? (多)字解十二生肖中何肖 美的TA102和TA100空调那款好? 家具是实木的好还是实木颗粒板的好?求专业的咨询? 多字解那一生肖 美的壁挂式空调TA101(B1)与XT100(1)哪个好? 实木家具一直都有味道,不知是甲醛味还是木头的味道,一直敞了3年了,还是不散。 十二生肖,多是指哪个生肖 美的空调舒适星TA100跟TA102区别 实木颗粒板和木工板的优缺点各是什么?