最近刚学 python,以前学的是 JAVA,对比起来才知道 JAVA 真的语法有点啰嗦,那 python 有哪些令你感到优雅、简洁、易懂、而且强大的的代码片段可以分享分享

2015-07-23 18:16:55 +08:00
 lyning
12056 次点击
所在节点    Python
66 条回复
est
2015-07-24 09:14:32 +08:00
@dtdnqsb 为什么要这样做呢。。。

>>> list('hahahha')
['h', 'a', 'h', 'a', 'h', 'h', 'a']

其实大多数时候str可以直接遍历。比如提取字符种的数字部分:

>>> filter(str.isdigit, 'abcde123fghi567')
'123567'
knightdf
2015-07-24 09:17:39 +08:00
lz的java一定学的很好
yuankui
2015-07-24 09:25:00 +08:00
[1,2,3,4][::-1] => [4,3,2,1]

map,reduce,filter
thinkmore
2015-07-24 09:47:57 +08:00
你们所谓的优雅,只是代码简洁吗?过度的封装而已
qw7692336
2015-07-24 09:50:28 +08:00
@thinkmore
语法糖
Tiande
2015-07-24 10:00:57 +08:00
@est 窝已经 特别关注 你了!
chaucerling
2015-07-24 10:24:38 +08:00
lz如果学学函数式吧,那才叫优雅
googya
2015-07-24 10:31:44 +08:00
啰嗦有啰嗦的好处, 灵活有灵活的优点
codeyung
2015-07-24 11:02:34 +08:00
没有太大可比性 想学啥学啥吧 Scala八错推荐
lzhtony
2015-07-24 11:03:09 +08:00
@publicID001 对象确实没想到什么好方法.
@bdbai 仔细思考后发现这个方法的奥妙不是更吸引人.
灵活的语言一般来说代码更简洁优雅吧.python确实很有这种feel,C++也是.Java和C比起来很多语法都不支持,也就没有那么高的灵活性.
quericy
2015-07-24 11:11:04 +08:00
@scream7 输入法暴露了什么233333
laucie
2015-07-24 11:13:42 +08:00
为啥不说python简单
robertlyc
2015-07-24 11:26:51 +08:00
那是因为没学过ruby
publicID001
2015-07-24 11:50:20 +08:00
@cxe2v 大一党,平时用的最多的是C++和VB.net,之前C#的课程大作业写了个简单的Online Judge,并不觉得优雅。。。比如:
习惯了C++各种很爽的隐式转换,想在C#里写:
int a;
if(a)会报错,没有隐式转换,if((bool)a)都不行。。。
vb.net都可以用 if 3 then 这种隐式转换。。。

还有就是switch里每个标签后都要加break之类,反正以后除非必要,否则不想用C#了……
theJian
2015-07-24 12:08:13 +08:00
Python >> Ruby >> CoffeeScript >> ?
cutepig49
2015-07-24 14:43:31 +08:00
@publicID001 这是优点,不是缺点
newborn
2015-07-24 15:04:38 +08:00
你可以再顺便了解下perl
laoyuan
2015-07-24 16:39:04 +08:00
str[:-0] 这里就是个坑。
NeoAtlantis
2015-07-24 16:58:55 +08:00
a=[(1,2,3), (4,5,6)]
for x,y,z in a:
pass

python确实不错……一个蒸汽轮机的课程设计作业……800多个参数直接用python算 完了还直接画图出报告……写程序连调试修改就花了两天时间……
bramblex
2015-07-24 20:30:08 +08:00
{-n的所有因数:-}
factor n = [x| x <- [1..n], n `mod` x ==0]

{-判断n是否为素数:-}
isPrime n = [x | x <- [1..n], n `mod` x == 0] == [1, n]

{-n的所有素因数:-}
primeFactor n = [x| x <- [1..n], x /= 1, n `mod` x == 0, isPrime x]

{-最后分解n的素因数-}
decPrimeFactor 1 = []
decPrimeFactor n = first:(decPrimeFactor (div n first))
_ _ where first = head ( primeFactor n )

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/207858

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX