F**k Python

Author:zumikua Updated at:2013-08-03 17:51:12 UTC

最近在做ACM比赛的时候尝试用了一下python,整个就恶心到我了……正好今天看了不少ruby和python的对比文,现在在这把心中积蓄的吐槽一吐为快。 首先,不内置正则表达式,卧槽连php那种垃圾语言都特么可以直接用正则的好不好?然后,我特么引用了正则后,想进行一次匹配 ``` def funcfull(mobj): return '{0}{1:03d}{2:03d}'.format(int(mobj.group(1)),int(mobj.group(2)),int(mobj.group(3))) full = re.compile('(\d{1,3})\ million\ (\d{1,3})\ thousand\ (\d{1,3})',re.IGNORECASE) now_line = full.sub(funcfull,now_line) ``` 特么这是人干事?我特么就为了匹配一个正则我还得新建一个方法?别和我提那个lambda,只支持一个表达式要你干屌?而且没有ruby好用的`$1`之类的全局方法,还只能新建一个方法来获取匹配结果 。 知道ruby怎么解决这个问题么? `str.gsub!(/(\d{1,3})\ thousand\ (\d{1,3})/i){sprintf("%d%3d",$1,$2)}` 高下立现! 而且python这傻逼的字符串格式化也很奇葩,查文档勉强支持的类C格式化字符串还不推荐使用,换了一个这种换汤不换药的format,你特么有什么意义! 就连php做的都比你们好知道么 ``` $php = '大家好我是傻逼的php' echo "$php" ``` 而且,其实本来我的那个字符串变量的名字定义成了str,当然,我这是按照官方文档的示例定义的。 然后,str特么还是类型转换的方法!卧槽我就不强求你类似Ruby能有个`.to_s`了你特么正常点来个ToString(val)行么?而且你连官方文档的示例都用str做标识符是闹哪样啊! 其他一些小问题我就不说了……什么方法的参数必须要用括号括起来啊,if while后面都必须要有冒号啊之类的,就当我是从ruby转过来水土不服好了。 然后 ,python 竟然不支持 class 的 reopen。 你特么是个动态语言啊!动态语言啊!你特么连reopen都不支持不会被人耻笑么?我特么不想从网上用个开源的库想稍微修改修改还特么得改源码啊!你知道Ruby有多么方便么? ``` class Array def X2 self.each{|i| i *= 2} end end ``` 内部类ruby都敢这样玩啊!你丫怎么就这么怂啊!ruby的元编程能把你爆出翔啊!实例可以重定义方法啊!你简直不知道这特么有多爽啊!配合reopen可以不修改原始代码直接hack代码啊!这是你们 python 永远不懂的啊! 嘛,想到那说那,说的比较乱,而且没学过python,只是对着文档随便来了两发,如有说错, 还望打脸。
Main