当前位置:首页 » 编程语言 » python与perl的区别

python与perl的区别

发布时间: 2022-09-05 18:06:41

❶ perl和python各自擅长什么领域

Perl 设 计之初就是为了方便编写复杂高效的系统脚本,它也是应该最为广泛的脚本编程语言。它在编程方面相当于瑞士军刀,对字符、文本文件处理能力很强,以前要求 shell+sed+awk+C才能完成的任务,只需perl脚本就可以完成了。而且应用领域一直在拓宽,支持面向对象程序设计。
Python 面向对象的动态公共语言,适于脚本编程和快速开发,它最显着的特点是作为编译语言(如C)和脚本语言(如perl)之间的桥接语言,它具有的强大功能,可扩充性及面向对象的特征使其成为大规模应用程序开发工具。
关于强类型Perl语言中,数据的类型,取决于数据所处的上下文。
Python语言中,数据类型,是数据自身确定的。Python因此一般被认为是强类型语言,而Perl则不是,不过Perl的爱好者一般不关心这种事情。实际上,换个角度来看,Python是固定的数据类型,变化的函数类型;而 Perl则是固定的函数类型,变化的数据类型。都很有意思。
关于 内置基础类型
Perl的基础类型叫做scalar,这是为了和后面的array和hash做区别。scalar可以是数字,也可以是字符串。基本上说,scalar非此即彼;换句话说,scalar既是数字,又是字符串。scalar到底是字符串,还是数字,完全取决于使用scalar的上下文,如果是一个处理字符串的函数,那么它是字符串;如果是一个处理数字的函数,那么它是数字。Perl会尽一切努力完成它们之间的转化,无论在你看来有多么荒诞。 Perl中,所有scalar都以$开头,所有以$开头的都是scalar。 Python的基础类型,同样,不是数字,就是字符串。但是,不可能既是数字,又是字符串。Python会判断变量到底是数字,还是字符串,以此来选择怎么解释函数;如果它找不到一个合适的解释,那么Python会抛出异常。一般来说,这种策略能够取悦一部分程序员,同时让另外一部分人感觉很不爽。
关于 复合类型
Perl有两种复合类型:array和hash。Python有三种复合类型:tuple, list, dict。 Python中的tuple+list,完全对应于Perl中的array;因此不存在谁提供的 类型更丰富这样的问题。
关于 创建Perl中创建array可以通过()。但是()到底是否会创建一个array,这取决于所处的上下文;换句话说,只有当上下文要求一个array时,()才会产生一个array。事实上,()可能创建一个scalar,也可能创建一个hash,这完全取决于上下文。
关于存取单个元素
Perl中我们可以用$foo[$bar]来表示foo这个array中的第$bar个元素。特别诡异的是,这个foo和$foo中的foo是完全不相干的,这回应了前面提到的Perl原则,一个符号到底什么意思,取决于上下文。并且,在$foo[$bar]这样一个上下文中,$bar会被Perl 搞成整数,无论它本来是什么。 Perl中,用一个越界的idx访问array是完全正常的,Perl会悄悄的扩展array。Python中,tuple或者是list,两者都通过lst[idx]这样的形式存取其中的元素。 Python中,用一个越界的idx访问array会触发一个异常。 Python中,提供了强大的slice功能。
关于做为整体的list
Perl中,用@开头的名字表示整个array,据说是因为@是array的字头。但是,又根据Perl的原则,@foo这样的array也可以被使用到一个需要scalar的环境中去,Perl会尽力把@foo转换成一个scalar,一般来说,这个scalar就是@foo的长度。

❷ perl 语言跟python 语言的区别。学哪一个比较好。

python代码清晰一些,一切东西都是对象。
perl灵活一些,主要面向过程,内置正则表达式(这个是perl的精髓,很强悍的),支持有限有面向对象,有很多默认的东西和符号,可以把代码写得很简洁(也让不熟悉的很难读懂代码)。
个人使用python, 可以交互式运行,这个很爽的。

❸ 敢问Perl 比 Python 好在哪里

其实不能这样比较的, perl 和 python 都只是一种语言, 就像中文, 英文, 日文... 那个好? 是无法做直接比较的, 中文我们易用来沟通, 但很难做技术性的表达; 英文更好面向世界, 但单词最多且语法迂回(认真的话), 日文变化不多易掌握, 但难于入门.... perl 和 python 一样, 好与不好, 要看处境而定, perl 易学但难精, 因为她超灵活多变, 学习你常常会有"吓! 竟然可以这样!!" 的感慨, 但一旦你掌握了(和懂得在cpan找资源), 又会变得很自在, 开始有那种 "嗯.. 这个事情三几句可以搞定了" 的优越感. python 很规矩 (纯OO), 很烦, 但相对很好维护, 但开发很费劲, 一个很简单的事情要分好多句来写 ( 相对于 perl 来说 ), 赶时间又要写 python, 感觉就像春运要回家那样子吧.

❹ perl 、shell、python三种脚本语言那种好学、易用

perl、shell、python三种脚本语言的区别:

1、适用不同:shell是操作linux的基本,是必须学的。学shell就是学linux命令。perl有强大的正则表达式支持,对于文本处理非常强悍,玩linux不得不学。python作用一种面向对象的,能作为linux脚本的语言,学好之后能帮你很好地完成工作。

2、特点不同:Perl是一种能完成任务的语言。从一开始,Perl就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。它可以很容易操作数字,文本,文件和目录,计算机和网络,特别是程序的语言。

这种语言应该很容易运行外部的程序并且扫描这些程序的输出获取感兴趣的东西。而且它还应该很容易能把这些你感兴趣的东西交给其它程序做特殊的处理。当然,这种语言还应该很容易在任何现代的操作系统上可以移植地编译和运行。

shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shellscript(非交互)方式执行。

shellscript是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shellscript是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器,类似于DOS下的command.com。

它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourneshell(sh)和Cshell(csh)。

Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格,Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。

3、优点不同:perl,用作文本处理比较好,可以作为系统的辅助工具。shell,用作系统维护、操作等方面。python,功能强大,模块多、跨平台能力好,完全面向对象,尤其适用做大型脚本程序的开发和快速开发。

(4)python与perl的区别扩展阅读:

erl比shell+sed+awk更强大,但学习两者并不冲突,通常是学习shell做为脚本编程的入门基础。而Python在应用领域则与前两者有很大的差别,无太大的可比性。面向不同的任务,可以只需用到其中的一种,也可能三种都要用到,所以究竟该学谁不学谁,需要由面对的任务来决定。

总之,shell是基础,其他是进阶辅助。

Shell脚本通常都是以.sh为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它一定会是一个shell脚本了。

test.sh中第一行一定是“#!/bin/bash”它代表的意思是,该文件使用的是bash语法。如果不设置该行,那么你的shell脚本就不能被执行。’#’表示注释。后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等等。

❺ 敢问Perl 比 Python 好在哪里

1. perl正则好用: sed, awk, grep的正则有细微差异, 难以记忆, 基本上一个正则表达式需要试很久. 而perl在onelinar写shell脚本中, 可以替换sed/awk/grep. 只需要记住统一的perl正则即可, 统一简洁好用.
2. 形式自由, 可以随心所欲. 用perl写脚本, 可以有多种写法. 想简洁就简洁, 想整洁就整洁, 风格自己定.
3. 繁杂的extension和精简的语言内核很吸引人. 函数(sub)和符号表(%::)都是first-citizen, 所以高阶函数和typeglob都用起来很爽.
4. 最最重要原因, 用perl的人, 内心强烈的认为perl比python好, 不用不知道这种偏好是多么强烈. 偏好是一种强烈的执念, 执念容易虚妄.
5. 其实ruby要比perl和python都好. 但脚本语言, 属于小语种, 熟悉了常用的一种, 就不想学其他小语种了.

❻ perl和python区别是什么

python与perl区别在于:
python使用fetchall()函数后,一次获取所有行。
perl则是每读取一次获取一条记录。
关于缩进:
python很注重缩进的,有时看起来是对齐的,但是还是会报缩进错误。此种情况,一般是有的是TAB缩进,有的是空格缩进。
所以,一般同一个脚本中,使用同一处方式缩进(要么全TAB,要么全空格)。
相关推荐:《Python教程》
关于{} []
perl中的数组,哈希都是使用()qw生成 ,只不过是数组使用[]索引,哈希使用{}索引。
python()表示元组,[]表示数组 ,{}表示字典,即哈希。
关于函数:
perl使用{}和C一样,但是形参,都是用特殊变量@_ 来获取。关健字 sub ##PERL中大量使用特殊变量。
python 是使用缩进来区分函数语句块的,关健字 def。
关于python版本问题:
旧版本2.0的,print("这里面有中文") 打印在屏幕上会是乱码,打印到文件中则是正常的。
##在旧版本2.0,print如果有打印中文到屏幕上最好不要加()括号。 打印到文件则无所谓。
关于print
python --- 字符串后面可以不用加n 自动换行。
per --- 不会自动换行,需加上n。
关于执行SQL语句。
python与perl相同,使用变量来接收时,它是个二维数组,每一条查询结果,即为一个一维数组,每个字段,即为一维数组中的元素。
## 注意:
如果python执行SQL返回一行数据,则它为一维数组,返回多行数据,则为二维数组。

❼ shell+sed+awk和perl和python的区别

shell+sed+awk是linux下的语言和开发工具,很多系统类基础类用起来比较快捷
perl和python是2个非常强大的语言,但是个人认为python更强,适应广泛

❽ Python和perl各有什么特点和优势,哪个更好一些

perl是骆驼,python是蟒蛇,优势或者两者差异可以用 perl vs python这些来google一下获得别人的看法。 perl代码比较晦涩,python现在也是linux的标配了。建议python,除非你是要维护老代码。

热点内容
eclipse运行python 发布:2025-01-14 04:07:06 浏览:292
struts源码学习 发布:2025-01-14 04:02:28 浏览:686
李根数据库 发布:2025-01-14 03:44:52 浏览:341
php数据库删除 发布:2025-01-14 03:35:51 浏览:294
上传进度条代码 发布:2025-01-14 03:32:01 浏览:638
电脑怎样创建文件夹 发布:2025-01-14 03:31:20 浏览:658
王朝脚本 发布:2025-01-14 03:26:08 浏览:175
dcloud源码 发布:2025-01-14 03:26:00 浏览:301
梅林IPTV脚本 发布:2025-01-14 03:23:46 浏览:633
c语言if语句执行顺序 发布:2025-01-14 03:22:19 浏览:990