在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Python version 3.7版本 00.命令行交互
0.变量 区别:Python变量前没有区分是普通变量还是列表(数组)的符号,Perl有区分,$bianliang @shuzu %hash 相同:命名要求一致,字母数字下划线
1.print输出 二者通用格式:print(“字符串”); Perl: print(“字符串1”."字符串2".$bianliang(任何变量都可以)."\n"); #无自带换行符 Python: print(“字符串1”+“字符串2”+字符变量1+str(非字符变量2)); #a="map" 字符变量 a=1非字符变量 #自带换行符 对于列表和字典,print(块1,块2,块3) #可以用逗号隔开一起输出,输出结果为各模块之间是空格
2.注释 二者相同都用#
3.Perl的数组 <=> Python的列表
4.for循环 Perl: for( $a = 0; $a < 10; $a = $a + 1 ){ print "a 的值为: $a\n"; }
遍历一维哈希:
foreach my $key(sort {$hash{$b}<=>$hash{$a}} keys %hash){ #对value值按照数字大小进行逆序排序
print $key."t".$hash{$key}."n";
}
遍历二维哈希:使用$hash{$key1}{$key2}=$value;
foreach my $key1(sort keys %hash){ #首先对key1进行排序
foreach my $key2(sort {$hash{$key1}->{$b}<=>$hash{$key1}->{$a}} keys %{$hash{$key1}}){ #对value值按照数字大小进行逆序排序
#foreach my $key2(sort {$a<=>$b} keys %{$hash{$key1}}){ #对key2按照数字大小进行排序,正顺序排序
print $key1."t".$key2."t".$hash{$key1}->{$key2}."n";
}
}
Python: for list_v in list1: #遍历列表 print(list_v); #break #退出while循环,不再运行循环中余下代码 #continue #终断单次循环,进入下一个循环 print("thank you,everyone\n"); 列表解析 squares=[value**2 for value in range(1,11)] #[1,4,9,16,25,36,49,64,81,100]
for key1,value1 in alien.items(): #遍历字典所有键值对 print("\nKey: "+ key1) print(Value: " + value1) for key1 in alien.keys(): #遍历字典中的所有键 #for key1 in alien: #遍历字典中的所有键,遍历字典时,默认遍历所有的键 print(key1.title()) for key1 in sorted(alien.keys()): #按顺序遍历字典中的所有键 print(key1.title()) for value1 in alien.values(): #遍历字典中所有值,没有删除重复,都列出 print(value1.title()) for value1 in set(alien.values()): #遍历字典中所有值,删除重复,值唯一,set(集合)类似于列表 print(value1.title()) 注意:for能遍历列表,但不能修改列表,否则Python难以跟踪其中元素;
5.if条件判断 注意:Perl和Python都是只要一个在if整体模块中,只要有一个if 或者elsif|elif判断是真,下边的条件判断就会跳过去,不在运行; Perl: if(条件判断){ }
if(条件判断){ }else{ #可省略 }
if(条件判断){ }elsif(条件判断){ }else{ #可省略 } 条件判断常用: True #布尔值 not True #布尔值 ! True #布尔值 False #布尔值 数字 0、字符串 '0' 、 "" 、空数组list () 和 undef 为 false > ; >= ; < ; <= ; ==;!=;<=>比较,返回0或者 1或者 -1; #数值比较大小 == #判断是否相等; != #判断是否不相等; bt ; be ; lt ; le ; eq ; ne ; cmp比较,返回0或者 1或者 -1; #字符串比较大小 =~ #匹配 && #且 || #或者
Python: if 条件判断: 执行语句1 执行语句2
if 条件判断: 执行语句 else: #可省略 执行语句
if 条件判断: 执行语句 elif 条件判断: 执行语句 else: #可省略 执行语句
条件判断常用: bianliang1=True #直接布尔值 bianliang2=False #直接布尔值 列表为空,即list1=[],则 if list1 : 判断为False == #判断是否相等; #区分字母大小 #适用于字符串、数值 != #判断是否不等; #区分字母大小 #适用于字符串、数值 car=“Audi”; car.lower()=="audi" #都转化为小写,再比较; < ; <=; >; >=; ==;!= ; #比较数值大小 4 % 3 == 1 #求模运算符%,两个数相除返回余数 and #且 or #或 list1=['1','buht','4']; "buht" in list1 #True #判断某元素是否在列表中 list1=['1','buht','4']; "8" not in list1 #True #判断某元素是否在列表中
6.Perl的哈希hash<=> Python字典 Perl: %data= ('google'=>'google.com', 'runoob'=>'runoob.com', 'taobao'=>'taobao.com'); print "\$data{'google'} = $data{'google'}\n"; print "\$data{'runoob'} = $data{'runoob'}\n";
print "\$data{'taobao'} = $data{'taobao'}\n";
一个键对应一个值,值可以是Perl中任何对象(eg:数字、字符串、数组、哈希hash);所有的键之间必须唯一,所有的值可不唯一;
$data{'google1'} = 'google1.com'; #添加键值对
%data=() #创建空哈希
$data{'google'} = 'google1.com'; #修改哈希中的值
delete $data{'taobao'}; # 删除哈希中的元素(键值对)
Python: alien_0={'color':'green','points':5} #定义字典,方式1 alien_0={ #定义字典,方式2,多了个最后的逗号,大括号位置必须这样放,注意缩进格式固定 'color':'green', 'points':5, } print("alien_0['color'] = "+alien_0['color']); print("alien_0['points'] = "+alien_0['points']); print(alien_0['color'],alien_0['points']) #结果为:green 5 一个键对应一个值,值可以是Python中任何对象(eg:数字、字符串、列表、字典);所有的键之间必须唯一,所有的值可不唯一; alien_0['x_position']=0 #添加键值对 #键值对的添加顺序跟添加顺序不同,因为字典关注的是键值关联关系 alien_0={} #创建空字典 alien_0['color']='yellow' #修改字典中的值,由green变yellow del alien_0['color'] #删除键值对 #嵌套 #嵌套-字典列表(列表中嵌套字典)------------------------------>经常需要在列表中包含大量的字典,而其中每个字典都包含特定对象的众多信息 alien_0={'color':'green','points':5} alien_1={'color':'yellow','points':7} alien_2={'color':'red','points':8} aliens=[alien_0,alien_1,alien_3] for alien in aliens: print(alien)
#嵌套-列表字典(字典中嵌套列表)------------------------------->每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表【即,字典是键值一对一,值用列表,就相当于键值一对多】 pizza={ #一个物体,对应多个方面的信息 ‘crust’:‘thick’, #披萨皮厚薄 ‘toppings’:['mushrooms','extra cheese'], #披萨配料 } #嵌套-字典字典(字典中嵌套字典) -------------------------------->内部嵌套的众多字典,一般结构都相同,因为,这样使得后续的处理(eg:for循环)简单,否则会很复杂 users ={ 'A':{ 'first':'albert', 'last':'einstein', 'loacation':'paris', }, 'B':{ 'first':'marie', 'last':'curie' 'location':'princeton', }, }
7.指引用户输入、获取用户输入 Perl: 获取用户命令行输入: $input=<STDIN> 输出: print STDOUT << "EOF"; #EOF 是一个标记的名字,自定义标记名称 Python: message = input("Tell me something,and I will repeat it back to you: ") #将获取内容存储为字符串;#冒号后面,包含一个空格,可将提示与用户输入分开,让用户清楚的知道其输入始于何处 print(message) message = int(message) #如果message获取的内容是数值,则可以用int()转为数值
8.while循环 Perl:
Python: while 条件判断: 执行语句 #break #退出while循环,不再运行循环中余下代码 #continue #终断单次循环,进入下一个循环 while能遍历列表同时修改列表;for能遍历列表,但不能修改列表,否则Python难以跟踪其中元素; while能将列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查阅和显示;
9.python函数
|
请发表评论