1.关于python的缩进问题,python对结构直接的规整度要求严格,需要时刻注意这些细节问题。如下图,试了好多次才想起来要Tab一下。

2.Python的for循环抽象程度要高于C的for循环,因为Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。字符串也可以看做是一种tuple,也可以用来直接迭代。在python中我们统称为可迭代对象。

3.关于Lambda表达式:通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数匿名函数本质上就是一个函数,它所抽象出来的东西是一组运算。

map( lambda x: x*x, [y for y in range(10)] )
from functools import reduce

DIGITS = {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}

def char2num(s):
    return DIGITS[s]

def str2int(s):
    return reduce(lambda x, y: x * 10 + y, map(char2num, s))

lambda表达式的缺点在于掩盖了原来清晰的函数表达式的关系,能够少用就少用。

4.关于列表的复制。看下面两段代码:

member2=member[:]
member2=member

直接运行两段代码结果可能是一样的,但是member在于真正的占用了新的内存,存贮进了member的值,但是第二句就是给原有的member的值加了一个新的标签,并没有生成新的内存。所以在改变member时,第二句的member会跟着改变。