python的super super easy教程 | 变量

匿名函数:在创建时不需要命名
    函数体只能有一个表达式 不用写return 返回值就是表达式的值
lambda 参数1,参数2等:表达式
lambda x,y:x+y (返回x+y的和)
函数里面最好不要再放进print

max():比较大小的函数  如max(1,2.3,5,55)
sum():累加求和的函数
round():保留小数的函数  如round(x,2) 保留x的两位小数

递归函数:
自己调用自己 形成循环
定义出口条件 什么时候结束递归
通常是一个大问题通过寻找规律可以缩小规模的时候使用的
有最大递归深度 996 不可以超过
超级耗内存 且计算量大 能不用递归尽量不要用递归
每次递归都会保存结果再内存中,非常占用内存,效率低下

求n的阶乘:
def func01(n):
    if n==1:
        return 1
    else:
        return n*func01(n-1)

函数的参数传递本质上都是传递引用:

变量的空间作用域:

不可变数据类型
    def func1(x):
        print(x)
        #局部变量
        x=100  局部变量改变不会修改全局变量
        print(x)

    #全局变量
    x=1
    func1(x)  输出100
    print(x)   输出1

可变数据类型:(局部变量可以修改全局变量)
    def f(x):
        x[0]=100 在原基础修改了内存的[1,2,3]变成内存的[100,2,3]
        print(x)

    a=[1,2,3]  a指向内存的[1,2,3]
    f(a)  将x也指向内存的[1,2,3]
    print(a) 故输出为内存的[100,2,3]

参数定义的时候,默认参数避免定义成一个可变数据类型
如 def f(a=[])
        a.append(1)
        print(a)
    f() 输出[1]
    f() 输出[1,1]
这样每次调用都会相关联 因为在定义函数的时候就已经生成了a这个空列表

变量的作用域:
如果不可变数据类型想用局部变量修改全局变量 需要加一个关键字global
如
def f(): 在函数定义的括号里的参数是局部变量
    global x#申明x为全局变量(前面不能有局部变量为同名的x)
    x=1 此时x为全局变量 修改x为1
x=5  当这一行没有的时候 输出结果还是1
f()
print(x) 输出结果为1


变量名的解析(LEGB)
L:local 在本地变量中找 也就是在当前局部变量里面找
E:enclosing 在任意上层函数中找
G:global  在全局作用域中找
B:builtin 在内置作用域里面找 镶嵌在python解释器里的
 双下划线开头和双下划线结尾的变量一般都是内置变量 如 __name__
def f():
    #__name__=2
    def f2():
        #__name__=3
        print(__name__)
    f2()
#__name__=1
f()

文档注释 (Document String) 可以用help()查看:
文档注释是包 模块 类或者函数第一个用三引号引起来的字符串
如
def f():
    """
    this is test funct
    f()
    :return
    """
    print("hello")
print(help(f))

出现的就是引号里这一段 """
    this is test funct
    f()
    :return
    """
    
内建函数和工厂函数:
内建函数:python已经建好了的 无需导入 直接调用就好了
内建方法:一个对象自带的方法 需要用点去引用 如list.pop() list.insert()

工厂函数:类型转换函数相关 属于内建函数的一类
如 int() float() complex() bool()等

常用的内建函数:
看ppt:
    abs()取绝对值 hash()取哈希值
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值