Python学习过程笔记整理(四)

变量作用域

-分类

  -全局(global):在函数外部定义:整个全局范围都有效

  -局部(local):在函数内部定义:仅在局部范围有效

-提升局部变量为全局变量

  -使用global

-globals,locals内建函数

1 a = 1
2 b = 2
3 def fun(a,b):
4     c = 3
5     print("Locals = {0}".format(locals()))
6     print("Globals = {0}".format(globals()))  #打印的不仅是a,b,还有其他所有的全局变量,包括python自带的
7 fun(a,b)

-eval()、exec()函数

  -把一个字符串当成一个表达式执行,eval()返回表达式执行后的结果,exec()返回None

  -语法

    eval(string_code, globals=None, locals=None)

扫描二维码关注公众号,回复: 2946168 查看本文章

    exec(string_code, globals=None, locals=None)

 1 x = 100
 2 y = 200
 3 z1 = eval("x+y")
 4 z2 = exec("x+y")
 5 print(z1)   #300
 6 print(z2)   #None
 7 
 8 #以下eval和exec结果相同
 9 z1 = eval("print('x+y=:',x+y)")   #x+y=: 300
10 z2 = exec("print('x+y=:',x+y)")   #x+y=: 300
11 print(z1)    #None
12 print(z2)    #None

-递归函数

  -函数直接或者间接调用自身

  -python对递归深度有限制,超过限度报错

1 #斐波那契数列,只考虑正常输入的n
2 def fib(n):
3     if n == 1 or n ==2:
4         return 1
5     return fib(n-2) + fib(n-1)
6 
7 print(fib(5))

变量类型(内置数据结构)

-list

  -使用下标访问,从0开始:print(l[2])

  -分片操作:对列表进行任意一段的截取:print(l[1:3])

    -包含左不包含右:只取l[1]和l[2]

    -:左或者右不写,左边默认0,右边默认最后一个数据:print(l[:])

    -有步长,默认为1:print(l[1:6:3]),最后一个是步长,修改为3

    -下标可以超出范围,超出后不报错,不考虑多余的下标内容

    -下标为负数:表示从右往左,最后一个下标为-1。注意:分片截取左边值比右边大时,步长注意需要使用负数

-set

-dict

-tuple

猜你喜欢

转载自www.cnblogs.com/jiangyuhan/p/9556125.html
今日推荐