函数

函数

引子:

求1-15的和;

求23-26的和;

求55-68的和。

def sum(a,b):
 s=0
 for i in range(a,b+1):
    s+=i
 return s

print(sum(23,26))

程序而言:函数就是对程序逻辑进行结构化或者过程化的一种编程方法。

bulit-in function 内置函数 BIF

函数的定义

声明函数的一般形式:

def function_name(arg1,arg2,...argn):
    ```statements```
    func_statements
    return Value
def add(x,y):   
    '''求和'''
    return x+y

print(add.__doc__) #求和       返回函数说明

函数参数种类

形参和实参

  • 形参
    • 只有在调用时才分配内存单元,调用结束后释放所分配的内存单元。因此,形参只在函数内部有效,函数调用结束返回主调用函数后则不能在使用该形参变量。
  • 实参
    • 实参是一个确定的值,能够传递给形参。
      • 作为位置参数或者关键字参数传递。

默认值参数

关键字参数

不定参数

在Python中不定参数主要是指args 和**kwargs两个魔法变量。

他们俩主要用于函数定义,我们可以将不定数量的参数传递给一个函数。

  • *args用来接受任意非键值对
def uncertain_para(para,para2,*args):
    print('普通位置参数',para,para2)
    print('不定参数',args)
    print(type(args))
uncertain_para(1,2,3,4,'a','b')
uncertain_para([1,2,3],'ab','cd','ef')
#普通位置参数 1 2
#不定参数 (3, 4, 'a', 'b')
#<class 'tuple'>
#普通位置参数 [1, 2, 3] ab
#不定参数 ('cd', 'ef')
#<class 'tuple'>
  • **kwargs用来接受不定长度的
def un_para_key(**kwargs):
    print(kwargs)
    print(type(kwargs))

un_para_key(a=1,b=2,c=3)
#{'a': 1, 'b': 2, 'c': 3}
#<class 'dict'>

def un_para_key(x,y,*z,**kwargs):
    print(x,y,z)
    print(kwargs)
    print(type(kwargs))

un_para_key(1,2,3,4,5,'a','b',a=1,b=2,c=3)
#1 2 (3, 4, 5, 'a', 'b')
#{'a': 1, 'b': 2, 'c': 3}
#<class 'dict'>

练习:

def func1(p):
    digit_number = 0
    space_number = 0
    alpha_number = 0
    else_number = 0
    for i in p:
        if i.isdigit():
            digit_number += 1
        elif i.isspace():
            space_number += 1
        elif i.isalpha():
            alpha_number += 1
        else:
            else_number += 1
    return (digit_number,space_number,alpha_number,else_number)

print(func1("asd8uas d7asy as8yzx##@"))

函数属性

内嵌函数

作用域

bar()整个函数都处于外部foo()函数的作用域里(foo()是我们可以从外部访问的一个对象区域)。除了在foo()内部,其他地方无法对bar()进行调用。

作用域的类型

Python中使用一个变量时并不需要预先声明它。但是在真正使用的时候,他必须绑定到某个内存对象(被定义,赋值)。这种变量名的绑定将在当前作用域引入新的变量,同时,屏蔽外层作用域中的相同变量

a=6688
def foo():
    # a=666
    print(a)  #报错
    a=888
    print(a)
foo()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值