//
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