看一个小白痴的无聊笔记 **** 函数基本了解

看一个小白痴的无聊笔记

感谢你在无聊之中看这篇文章,请慢慢了解明白

最后超萌视频给你解压

关于函数

"""
example01 - 全局变量和局部变量

全局变量(没有写在任何函数里面的变量)
局部变量(定义在函数内部的变量)

Python程序中搜索一个变量是按照 LEGB 顺序进行搜索的

Local(局部作用域) ---> Embeded(嵌套作用域) ---> Global(全局作用域)
---> Built-in(内置作用域) ---> NameError: name ... not defined

global ---> 声明使用全局变量或者定义一个局部变量将其放到全局作用域
nonlocal ---> 声明使用嵌套作用域的变量(不使用局部变量)

"""

x = 100


def foo():
    # 如果我不想在函数foo中定义局部变量x,想直接使用全局变量x,应该怎么做???
    # global x
    x = 200

    def bar():
        # 如果我不想在函数bar中定义局部变量x,想直接使用嵌套作用域中的x,应该怎么做???
        # nonlocal x
        x = 300
        print(x)

    bar()
    print(x)


foo()
print(x)
函数的分类
  1. ​ 执行过程函数:函数体内完成一定的功能即可,没有返回值
  2. ​ 具有返回值的函数:函数体内完成一定的功能,并且返回一个结果到函数的调用处。
函数中返回值(return)
  1. ​ 函数中可以使用return进行数据的返回
  2. ​ 可以使用return返回任意内容或数据
  3. ​ return会把返回值,返回到函数调用出
  4. ​ return 意味着函数的结束,return之后的代码不在执行
  5. 在一个函数中,可以返回一些内容,也可以不返回
  6. 如果没有return或return后面没有任何值,返回None
函数的参数
  1. 位置参数:必须和函数给的参数一致的位置。
  2. 默认参数:
  3. 可变参数参数 :可以只给一个值 arg , 需要有等号的复制kwarg
None

​ 是一个特殊的数据,表示什么都没有。

example

def jia(n1, n2):
    n3 = n1 + n2
    return n3

print(jia(1, 2))
变量的作用域

作用域就是当前起作用,可用的范围区域

变量的有效范围

  • ​ 全局变量:在函数内外都可以使用的变量。
  • ​ 局部变量:在函数内部可以使用的变量,在外部无效。
  • ​ 可变数据类型:在函数外定义的变量,在函数可以使用。
  • ​ 不可变数据类型:在函数外定义的变量,在函数内只能访问,不能使用其它操作。
  • ​ 对容器型对象都是一样的。
  • global定义的变量是定义全局变量,函数内外的操作一致,引用全局变量
  • locals():获取当前作用域的变量数据。
  • 两个函数,在全局变量是,print函数一样,当放在函数里时,local会变成函数里的变量值。
  • 不光变量有作用域,函数一样也有相同的作用域
  • nonlocal :在内函数中如果想使用外层函数的变量,那么需要使用nonlocal关键字应用。可以引用上一层定义的局部变量,但依旧不能提升为全部变量。
num = 10
varlist = [1, 2, 3]

def func(num):
    '''
    这里是让你些当前的文档说明的
    需要说明当前函数的作用
    如果当前函数的作用还有行参, 那么也需要对形参进行一一说明
    name:这个是一个name参数,有什么作用。。。
    age:这个表示当前的一个年龄
    :return:此处说明当前函数的返回值
    '''
    print(num)  #在函数内不可以获取函数外部的变量
    num += 20   # 在函数内不能直接更改函数外的变量
    # 函数外定义的变量可以访问但不能更改
    print(varlist) 
    # 但是也不如同num变量一样不能更改,如append
    love = 20
    love += 1
    print(love)
 # 函数内定义的变量无法在外部使用,除非使用    global x
func(num)
def outer():
	print('————')
	# 在函数内定义的函数,称为 局部函数,函数外无法使用
	num = 10
    def inner():
        # nonlocal 关键字在局部函数中使用,可以引用上一层定义的局部变量,但依旧不能提升为全部变量
			print('123456')
            num +=1
            print(num)
	#需要在创建函数里在加一个函数
    print(num) # 在这里会出现错误
	inner()

看可爱喵咪视频放松一下吧

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值