python笔记-global/多维数组/递归

1.global变量的初始值要放在函数外或者类外赋值,不能在函数内或者类内赋值,在函数内或者类内使用global变量前声明为global变量才能使用;
如果global声明和变量的初始值都放在函数外或者类外赋值,在函数内或者类内的同名变量没有声明为global则就是一个新的局部变量,跟那个全局变量没有关系,在内部使用一定需要声明为global才用的是global变量。
global期望能是一个变动的值才有意义,所以初始值如果定义在函数内部是不合逻辑的,每次在函数内部调用的时候都被初始化了。

2.定义多维数组直接*则会导致赋值时整列都被赋值了,
b = [[0]*10]10,定义1010初始为0的二维数组

用for的方法定义多维数组才可以定义具体的某个值。
a=[[0 for x in range(10)] for y in range(10)]

a[0][0]=1时,只有a[0][0]为1,其他全为0。

b[0][0]=1时,b[0][0],b[0][1],直到b[0][9]全部为1。

由此得到大数组中的10个小的一维数据全是一个相同的引用,即指向同一地址。

故 b = [[0]*10]*10并不符合我们常规意义上的二维数组

3.递归函数要如果用在for循环里要注意退出,如果递归使用后不使用break会导致递归函数还会退回到当前节点,还会继续执行后面的,所以需要退出后面的操作;
递归函数要如果用在一般情况下比如if下也要注意退出,使用return,如果不用return也会继续执行后面的代码,而递归已经执行了整个操作,执行完递归函数即可,不要再执行后面的代码。

你可能感兴趣的:(python,python)