//
python缩进用来表示语法块  
//比如  
>>> a = 11  
>>>while a>10 :  
>>>        a = 10  //  
>>>        print a //同样的缩进表示这两条语句是属于while的  
//while(a>10){  
//  a = 10  
//  print a  
//}  
--------------------------------------  
//判断语句  
>>> a = 10  
>>> if a >10 :  
>>>        print a  
>>> elif a<10 :  
>>>    print 10  
>>> else :  
>>>        print 0  
--------------------------------------  
//for循环语句  
>>> a=['nana','dandan']  
>>> for x in a :  
>>>        print x  
//for+if   
//更改的时候创建一个a的copy  
>>> a=['nana','dandan']  
>>> for x in a[:]:  
>>>        if len(x)>4 :  
>>>            a.insert(0,x)  
>>> a  
['dandan','nana','dandan']  
----------------------------------------  
//range() 函数:它生成一个等差级数链表  
>>>range(10)  
[0,1,2,3,4,5,6,7,8,9]  
>>>range(1,5)  
[1,2,3,4]  
  
//迭代索引列表  
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']  
>>> for i in range(len(a)):  
...     print i, a[i]  
  
//类似于java中的for循环效果:  
for(int i=0;i<a.length;i++){  
    System.out.println(i+""+a[i]);  
}  
  
//
break continue 与java的类似  
//Python的for循环中,还可以有一个else  
>>> for n in range(2, 10):  
...     for x in range(2, n):  
...         if n % x == 0:  
...             print n, 'equals', x, '*', n/x  
...             break  
...     else:  
...         // loop fell through without finding a factor  
...         print n, 'is a prime number'  
...  
2 is a prime number  
3 is a prime number  
4 equals 2 * 2  
5 is a prime number  
6 equals 2 * 3  
7 is a prime number  
8 equals 2 * 4  
9 equals 3 * 3  
-----------------------------------  
//pass语句,pass语句啥也不干...  
-----------------------------------  
//定义函数  
def fib(n):  
"""求解菲波那契函数""" //可以加上函数的说明  
    a,b=0,a //函数体正式开始,必须是缩进的  
    while b<n  
        print b,  
        a,b=b,a+b  
                    //可以没有返回值如果不写return,则返回None  
  
fib(10) //调用函数  
  
//执行函数时会为局部变量引入一个新的符号表。所有的局部变量都存储在这个局部符号表中  
"""这句话不甚理解,可能是说执行函数的时候,会在内存中为局部变量开辟一块单独的内存空间(类似于java中的栈内存)  
  
这几句话不理解:  
引用参数时,会先从局部符号表中查找,然后是全局符号表,然后是内置命名表。  
因此,全局参数虽然可以被引用,但它们不能在函数中直接赋值(除非它们用 global 语句命名)。"""  
  
  
//返回值  
>>> def fib2(n): // return Fibonacci series up to n  
...     """Return a list containing the Fibonacci series up to n."""  
...     result = []  
...     a, b = 0, 1  
...     while b < n:  
...         result.append(b)    // see below  
...         a, b = b, a+b  
...     return result  
...  
>>> f100 = fib2(100)    // call it  
>>> f100                // write the result  
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]  
//return 语句从函数中返回一个值,不带表达式的 return 返回 None。过程结束后也会返回 None 。  
  
//可变参数  
//1、给参数设定默认值  
>>> def d(name,age=20,sex='woman'):  
>>>        print name,age,sex  
>>> d('dd')  
dd 20 woman  
>>> d('dd',25)  
dd 25 woman  
>>> d('dd','man') //注意这种情况,输出的结果不是 dd 20 woman  
dd man woman  
  
//默认参数是在函数定义的时候被解析的  
>>> i = 5  
>>> def f(arg=i) // 这个时候默认参数被解析  
>>>        print arg  
>>> i = 6  
>>> f()  
5 //结果  
//一般情况下默认参数只解析一次,但是当默认值是一个可变对象,  
//诸如链表、字典或大部分类实例时,会产生一些差异  
>>> def f(a, L=[]):  
>>>    L.append(a)  
>>>    return L  
>>> f(1)  
[1]  
>>> f(2)  
[1,2]  
>>> f(3)  
[1,2,3]  
//如果你不想在不同的函数调用之间共享参数默认值,可以如下面的实例一样编写函数:   
>>> def f(a, L=None):  
>>>    if L is None: //注意判断None   
//      if L ==None  
>>>        L = []  
>>>    L.append(a)  
>>>    return L