我从因特网上找到了这个perl脚本,并试图用python重写,但没能做到。如果有人精通perl和python,请帮帮我。我确实希望python能够比perl更容易地做到这一点。在
谢谢
#!/usr/bin/perl
use Term::ANSIColor;
map(($yo=$_,map(( $y=$yo-$_/3,$l[24-$yo] .= (' ','$')[$y**2-20*$y+($_**2)/3<0]), (0..30)),),(0..24));
print color('red');
print join("\n", map(reverse($_).$_, @l)), "\n";
输出:
^{pr2}$
在阅读了Hunter McMillen的答案之后,我将OP的perl代码转换为python。在
在转换代码时,我注意到perl/python之间的其他差异。在
$l .= ...
。但这在Python中是不允许的。应该事先定义。IndexError
。应该提前分配。在$_
是隐式定义的。^{[::-1]
。在0
(floor division)。在Python3.x中,它生成0.5
(真除法);如果使用Python2.x运行这段代码,将得到稍微不同的结果。见http://asciinema.org/a/6681顺便说一句,这是黑色的心而不是红色的;)
Perl和Python都是动态语言,共享许多类似的内置函数,在Perl代码中使用的每个函数和/或运算符都在Python中有一个直接映射:
这应该是所有的物理部分,以同样的方式解决问题,你将不得不逐步通过每一行,以真正了解发生了什么。在
此外,您永远不会显示
@l
的定义位置。在相关问题 更多 >
编程相关推荐