设为首页 收藏本站
查看: 895|回复: 0

[经验分享] 比较perl+python

[复制链接]

尚未签到

发表于 2015-4-22 09:51:00 | 显示全部楼层 |阅读模式
  
http://hyperpolyglot.org/scripting
  
  

比较perl+python    
[table][tr][td] [/td][td]
perl (1987)

[/td][td]
python (1991)

[/td][/tr][tr][td=3,1]
基础

[/td][/tr][tr][td]  模块导入
[/td][td]  use strict;
[/td][td]  import os, re, sys
[/td][/tr][tr][td]  版本查看

[/td][td]  $ perl -v
[/td][td]  $ python -V
[/td][/tr][tr][td]  执行脚本

[/td][td]  $ perl foo.pl
[/td][td]  $ python foo.py
[/td][/tr][tr][td]  交互模式

[/td][td]  $ perl -de 0
[/td][td]  $ python
[/td][/tr][tr][td]  执行语句
[/td][td]  $ perl -e 'print("hi\n")'
[/td][td]  $ python -c "print('hi')"
[/td][/tr][tr][td]  语句分隔

[/td][td]  ;
[/td][td]  \n (newline)
or
;
[/td][/tr][tr][td]  语句块

[/td][td]  {}
[/td][td]  Indent
[/td][/tr][tr][td]  注释

[/td][td]  # comment
[/td][td]  # comment
[/td][/tr][tr][td]  多行注释

[/td][td]  =for
comment line
another line
=cut
[/td][td]  use triple quote string literal:
'''comment line
another line'''
[/td][/tr][tr][td=3,1]
变量和操作符

[/td][/tr][tr][td]  赋值
[/td][td]  $v = 1;
[/td][td]  v = 1
[/td][/tr][tr][td]  赋值

[/td][td]  ($x, $y, $z) = (1, 2, 3);
# 3 is discarded:
($x, $y) = (1, 2, 3);
# $z set to undef:
($x, $y, $z) = (1, 2);
[/td][td]  x, y, z = 1, 2, 3
# raises ValueError:
x, y = 1, 2, 3
# raises ValueError:
x, y, z = 1, 2
[/td][/tr][tr][td]  交换

[/td][td]  ($x, $y) = ($y, $x);
[/td][td]  x, y = y, x
[/td][/tr][tr][td]  操作符
[/td][td]  += -= *= none /= %= **=
.= x=
&&= ||= ^=
= &= |= ^=
[/td][td]  # do not return values:
+= -= *= /= //= %= **=
+= *=
&= |= ^=
= &= |= ^=
[/td][/tr][tr][td]  自增

[/td][td]  my $x = 1;
my $y = ++$x;
my $z = --$y;
[/td][td]  none
[/td][/tr][tr][td]  局部变量

[/td][td]  my $v;
my (@a, %d);
my $x = 1;
my ($y, $z) = (2, 3);
[/td][td]  # in function body:
v = None
a, d = [], {}
x = 1
y, z = 2, 3
[/td][/tr][tr][td]  全局变量
[/td][td]  our ($g1, $g2) = (7, 8);
sub swap_globals {
  ($g1, $g2) = ($g2, $g1);
}
[/td][td]  g1, g2 = 7, 8
def swap_globals():
  global g1, g2
  g1, g2 = g2, g1
[/td][/tr][tr][td]  常量

[/td][td]  use constant PI => 3.14;
[/td][td]  # uppercase identifiers
# constant by convention
PI = 3.14
[/td][/tr][tr][td]  空

[/td][td]  undef
[/td][td]  None
[/td][/tr][tr][td]  空测试

[/td][td]  ! defined $v
[/td][td]  v == None
v is None
[/td][/tr][tr][td]  访问未定义变量

[/td][td]  error under use strict; otherwise undef
[/td][td]  raises NameError
[/td][/tr][tr][td]  真假

[/td][td]  1 ""
[/td][td]  True False
[/td][/tr][tr][td]  假

[/td][td]  undef 0 0.0 "" "0" ()
[/td][td]  False None 0 0.0 '' [] {}
[/td][/tr][tr][td]  逻辑运算

[/td][td]  && || !
lower precedence:
and or xor not
[/td][td]  and or not
[/td][/tr][tr][td]  条件

[/td][td]  $x > 0 ? $x : -$x
[/td][td]  x if x > 0 else -x
[/td][/tr][tr][td]  比较

[/td][td]  numbers only: == != > < >=  < >=  & | ^ ~
[/td][td]  > & | ^ ~
[/td][/tr][tr][td]  其他进制
[/td][td]  0b101010
052
0x2a
[/td][td]  0b101010
052
0x2a
[/td][/tr][tr][td=3,1]
字符串操作

[/td][/tr][tr][td]  字符串

[/td][td]  "don't say \"no\""
'don\'t say "no"'
[/td][td]  'don\'t say "no"'
"don't say \"no\""
"don't " 'say "no"'
'''don't say "no"'''
"""don't say "no\""""
[/td][/tr][tr][td]  多行字符串

[/td][td]  yes
[/td][td]  triple quote literals only
[/td][/tr][tr][td]  转义

[/td][td]  double quoted:
\a \b \cx \e \f \n \r \t \xhh \x{hhhh} \ooo   Perl 5.14: \o{ooo}
single quoted:
\' \\
[/td][td]  single and double quoted:
\newline \\ \' \" \a \b \f \n \r \t \v \ooo \xhh
Python 3:
\uhhhh \Uhhhhhhhh
[/td][/tr][tr][td]  变量替换

[/td][td]  my $count = 3;
my $item = "ball";
print "$count ${item}s\n";
[/td][td]  count = 3
item = 'ball'
print(‘%s %s’ % (count, item))
[/td][/tr][tr][td]  sprintf

[/td][td]  my $fmt = "lorem %s %d %f";
sprintf($fmt, "ipsum", 13, 3.7)
[/td][td]  'lorem %s %d %f' % ('ipsum', 13, 3.7)
fmt = 'lorem {0} {1} {2}'
fmt.format('ipsum', 13, 3.7)
[/td][/tr][tr][td]  here document

[/td][td]  $word = "amet";
$s =

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59506-1-1.html 上篇帖子: Python与Ruby比较 下篇帖子: 转:Python之全局变量
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表