python和perl基本语法区别(一)
关于初级生信分析人员,刚进入这个大门时,要常常面对各种语言,尤其是perl和python。
我本身用的语言是python,但是最近由于工作的需要,我需要看perl脚本。
通过这几天的学习,关于python和perl语言的的一些基本语法区别,分享一下心得。
这一篇重点关注一下基本概念:包括字符串,列表和数组:
下一篇讲解:字典与哈希,还有读写文件的区别。
字符串的定义
1、在python中定义一个字符串主要是通过单引号,双引号,三引号,
字符串有分片和运算,加转义字符等功能。这里只是列举它的一些功能。
xiaoqing = "xiao qing er" ##定义字符串
xq = "xiao qing"
print (xiaoqing +" is a beautiful girl!") ##字符串的运算
print (xiaoqing * 3) ##字符串*3
print (xq in xiaoqing) ##字符串的一个逻辑运算
print (xiaoqing[0:4]) ###字符串的分片
上述print结果为:
xiao qing er is a beautiful girl!
xiao qing erxiao qing erxiao qing er
True
xiao
2、在perl中字符串的定义是用单引号加双引号以下方式,记住每个命令后面要加分号";":
my $xiaoqing = "xiao qing er";
print $xiaoqing,“\n”;
print结果是:
xiao qing er
列表与数组
1、在python中列表的定义用[ ]来定义,具有分片,更新,增加,移除,运算等功能,访问时用变量名称 + [索引值]例如:
xiaoqing = ["xiao" ,"qing" ,"er", "is" ,"a", "beautiful" ,"girl"]
print (xiaoqing[4:])
xiaoqing.append(" and very nice") ##增加一个字符串,扩增列表
print (xiaoqing)
xiaoqing.remove("girl") ##去除一个值
print (xiaoqing)
len(xiaoqing)
上述print结果为:
['a', 'beautiful', 'girl']
['xiao', 'qing', 'er', 'is', 'a', 'beautiful', 'girl', ' and very nice']
['xiao', 'qing', 'er', 'is', 'a', 'beautiful', ' and very nice']
2、在perl中数组相当于python中列表,定义时用@表示,访问时用 $ + 变量名称 + [索引值] :
例如:
@xiaoqing = qw (xiao qing er is a beautiful girl);
@xiaoqing =("xiao " ,"qing " ,"er ", "is" ,"a ", "beautiful " ,"girl"); ##在perl中,上述定义方式和这种定义数组方式达到的效果是一样的
@xq = ("and " ,"very ", "nice");
print @xiaoqing,"\n";
print $xiaoqing[3],"\n";
push (@xiaoqing,@xq); ##增加一个数组
print @xiaoqing,"\n";
pop @xiaoqing; ##去掉数组末尾的值
print @xiaoqing,"\n";
shift @xiaoqing ; ##去除数组最开始的一个值
print @xiaoqing,"\n";
上述print 的结果为:
xiao qing er is a beautiful girl
is
xiao qing er is a beautiful girl and very nice
xiao qing er is a beautiful girl and very
qing er is a beautiful girl and very nice
值的注意的是,不管是python还是perl,索引值都是从0开始的。
今天就先介绍到这里。有问题欢迎提出,一起交流。