python快速入门笔记(day2)

第一天的话,我们学习了python的一些基础语法,例如基础数据类型,元组,列表以及一些简单的if else语法,再加上一些简单文件读取写入等操作,第二天我们学习python中函数的一些操作。

函数:

函数是组织好的,可重复使⽤的,⽤来实现单⼀,或相关联功能的代码段。

函数的定义以及调用

def 函数名(形参):
	函数体
例:
def my_len():
    s = 'hello world'
    length = 0
    for i in s:
    length = length + 1
    print(length)
my_len()
定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"def 是固定的,不能变,他就是定义函数的关键字。
空格 为了将 def 关键字和函数名分开,必须空(四声),当然你可以空 2 格、3 格或者你想空多少都行,但正常人还是空 1 格。
函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便
起,但我们给函数起名字还是要尽量简短,并能表达函数功能
括号:是必须加的,先别问为啥要有括号,总之加上括号就对了!
注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代
码的可读性。
调用:就是 函数名() 要记得加上括号。 

函数的返回值

return关键字的作用:

  • return 是⼀个关键字,这个词翻译过来就是“返回”,所以我们管写在 return 后⾯的值叫“返回值”。
  • 不写return的情况下,默认返回一个None。
  • 一但遇到return,函数结束。
  • 返回的多个值会被组织成元组被返回,也可以⽤多个值来接收。

函数的参数

1.一般传参

def maxnumber(x,y):    
    the_max=x if x>y else y
    return the_max
ret=maxnumber(10,20)# 按位置传参
print(ret)
ret=maxnumber(y=10,x=20)#按关键字传参
ret=maxnumber(10,y=20)#混合传参  位置参数必须在关键字参数的前⾯
                      # 对于⼀个形参只能赋值⼀次 

2.默认传参

def stu_info(name,age = 18):
    print(name,age)
stu_info('aaron')
stu_info('song',50)

3.动态参数

def demo(*args,**kwargs):
    print(args,type(args))
    print(kwargs,type(kwargs))
demo('aaron',1,3,[1,3,2,2],{'a':123,'b':321},country='china',b=1)

'''
动态参数,也叫不定长传参,就是你需要传给函数的参数很多,不定个数,那这种情况下,你
就用*args,**kwargs 接收,args 是元祖形式,接收除去键值对以外的所有参数,kwargs 接收的只是键值对的参数,并保存在字典中。
'''

函数名的本质

函数名本质上就是函数的内存地址 。
1.可以被引用

def func():
    print('in func')
f=func
print(f)
f()

2.可以被当作容器类型的元素

def f1():
    print('f1')
def f2():
    print('f2')
def f3():
    print('f3')
l = [f1,f2,f3]
d = {'f1':f1,'f2':f2,'f3':f3}
l[0]()
d['f2']() 

3.可以当做函数的参数以及返回值

def f1():
    print('f1')
def func(argv):
    argv()
    return argv
f = func(f1)
f() 

闭包:

内部函数包含对外部作⽤域⽽⾮全局作⽤域变量的引⽤,该内部函数称为闭包函数。

#闭包的实例:
def func():
    name = 'aaron'
    def inner():
        print(name)
    return inner
f = func()
f() 


#判断闭包函数的⽅法 closure 
def func():
    name = 'aaron'
    def inner():
        print(name)
    print(inner.__closure__)
    return inner
f = func()
f()
# 最后运行的结果里面有 cell 就是闭包
name = 'aaron'
def func():
    def inner():
        print(name)
    print(inner.__closure__)
    return inner
f = func()
f()
# 输出结果为 None,说明不是闭包
def wrapper():
    money = 1000
    def func():
      name = 'apple'
      def inner():
          print(name,money)
      return inner
    return func
f = wrapper()
i = f()
i()
def func(a,b):
    def inner(x):
        return a*x + b
    return inner
func1 = func(4,5)
func2 = func(7,8)
print(func1(5),func2(6))
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值