print "\t".join([('%s*%s=%s' % (x,y,x*y)) for x in range(1,10) for y in
range(1,10) if x <= y])
现在的输出形式如下:
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9 2*2=4 2*3=6 2*4=8
2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21
3*8=24 3*9=27 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 5*5=25 5*6=30
5*7=35 5*8=40 5*9=45 6*6=36 6*7=42 6*8=48 6*9=54 7*7=49 7*8=56 7*9=63
8*8=64 8*9=72 9*9=81
能不能给改成小时候铅笔盒上的形式?
www.python8.org 资料下载,分类文档
非要写一行嘛?多写几行不就行了。
--
I like python!
UliPad <<The Python Editor>>: http://code.google.com/p/ulipad/
UliWeb <<simple web framework>>: http://uliwebproject.appspot.com
My Blog: http://hi.baidu.com/limodou
print "".join([('%s*%s=%s%s' % (y,x,x*y,'\n' if x==y else '\t')) for x
in range(1,10) for y in range(1,10) if x >= y])
输出:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
--
Best Regards,
Leo Jay
这个是python 2.5新加的条件表达式:
http://www.python.org/dev/peps/pep-0308/
觉得比较奇怪就是了……还是应该推荐and or的形式吧……比较符合pythonic的说
在 2009-09-20日的 14:09 +0800,Leo Jay写道:
> 2009/9/20 Upsuper <quanx...@gmail.com>:
> > '\n' if x==y else '\t' ? 没见过这种形式哦……
> > 不应该用 x==y and '\n' or '\t' ?
> >
>
> 这个是python 2.5新加的条件表达式:
> http://www.python.org/dev/peps/pep-0308/
>
>
www.python8.org 资料下载,分类文档
> >> 在 2009-09-20日的 11:50 +0800,Upsuper写道:
> >> > '\n' if x==y else '\t' ? 没见过这种形式哦……
> >> > 不应该用 x==y and '\n' or '\t' ?
> > 觉得比较奇怪就是了……还是应该推荐and or的形式吧……比较符合pythonic的说
>
> 相反,在Python 2.5之后,推荐使用 if else 表达式(我个人倒是不太在意用哪种,从英语的角度好像两种都说得通。)
>
and or形式只是一种晦涩的hack,绝对不能称得上pythonic,只是条件所限不得已而为之。事实上它还有一个危险的隐患。例如:
x = 1
y = 2
result = condition and x or y
这里设计者的本意通常应该是如果condition为真就让result取值为x,反之取值为y,对吧?但设想一下,如果condition确实为真,
但x的值碰巧是0呢?最终result会被赋成y。
刘老师说得对,python2.5之后,应该使用官方的result = x if condition else y的形式,就完全不存在上述隐
患。
另外,也请刘老师容许我这样说,从英语的角度,只有if else的形式符合日常语法。and or的方式在日常英语里是不会这样用的。:-)
Iceberg
Iceberg
and or 的形式只要中间表达式为零,结果就是错误的。所以这种形式根本不能用,也不应该用。在编程的正确性面前,我觉得别的理由都是扯淡吧。
Harris Lee@SH
ERP/Retail/Python