python 入门 1

本文原作者为天下第一精光爆射程序员姚LD。

python作为一门人见人爱,花见花开,鸟见鸟呆的编程语言自然有它与众不同的地方, 让我们来看看在四大编程语言中排名第二的python有何神奇之处吧.

List Comprehension

List comprehensions 可以写出非常漂亮的代码,其格式如下所示:

1
[ element for variable(s) in list if condition ]

比如说我们想要找出所以100以内奇数的平方就可以这样

1
print [x**2 for x in range(1,1000) if x % 2 == 1]

非常方便吧,一行代码哟

Generators

所谓 generator就是一个object, 这个object只有你在要取值的时候才会运行其中的代码,非常神奇吧,一般来说返回值可以是一个list, 但有时候你并不需要整个list, 这时候generator就发挥出他的功效了。

比如说我们喜闻乐见地要产生斐波那契数列的前10个数,就可以这样:

1
2
3
4
5
6
7
8
9
def fib():
(a,b) = (1,1)
while True:
yield a
(a,b) = (b,a+b)

f = fib()
for i in range(10):
print f.next()

其中每次运行next的时候都会运行到yield的地方.

Decorator

Decorator 是python里面非常重要组成部分,它非常像decorator pattern, 就是可以在函数外面再包一个函数, 它用@符号来表明:

1
2
3
4
5
6
7
8
9
10
11
def func1(f2):
def wrapped():
print "Hello"
f2()
return wrapped

@func1
def func2():
print "World!"

func2()

其中 decorator必须返回一个function, 或者是一个提供__call__方法的object.

再说一句,在python里面任何东西都是object, 连function也是