python -- 函数一

函数

1.函数的简介
1.1 函数的特点

1, 函数可以用来保存一些可执行的代码,在你需要的时候可以对这些代码进行多次的调用
2, 函数中保存的额代码不会立即执行,需要调用函数的时候代码才会执行

1.2语法:

def 函数名():
代码块
函数名()#调用

2.函数的参数
# a,b 是形参 1,2是实参
def x(a,b): 
	print(a,b)
x(1,2)
3.实参的类型

实参可以传递任意类型的对象


def fn(a):
    print('a = ', a)
fn(b)

# b = 456
# b = [1, 2, 3]
# b = True
# b = 'python'
# b = {1, 2, 3}
# b = (1,2,3)
# b = {name:you,age:10}
4.不定长参数
def fn(a, b):
    print(a)
    print(b)

fn(1, 2) #位置传参
fn(a=1, b=2) # 参数传参 参数跟上面的形参名要相同

 # 带一个*的传参,只能放在后面,且只能有一个带(一个)*的
 # *接收的是位置传参
def fn(a, *b): 
    print(a)
    print(b)

fn(1,2,3)

#只能有一个带(一个)**的
# ** 接收的是关键字传参,返回的是字典
def fn(a, **b): 
    print(a)
    print(b)

fn(1,c=3)
# * 和 ** 混合使用时 *放在前面

#传字典时 可以用 **d *d.items()
def fn(a, b, c):
    print(a)
    print(b)
    print(c)
    # print(k)

d = {'a': 1, 'b': 2, 'c': 3}
fn(**d) # **d时 需要形参跟键名相同
fn(*d.items())

5.函数的返回值

当你不写return语句和只写一个return的时候,返回值是None

在return的后面,程序的代码都不会执行,return一旦执行函数自动结束

返回函数名 返回的是一个函数的对象 可以用函数名()调用

6.函数的作用域

在Python中一共有两种作用域

全局作用域
• 全局作用域在程序执行时创建,在程序执行结束时销毁
• 所有函数以外的区域都是全局作用域
• 在全局作用域中定义的变量,都是全局变量,全局变量可以在程序的任意位置进行访问

函数作用域
• 函数作用域在函数调用时创建,在调用结束时销毁
• 函数每调用一次就会产生一个新的函数作用域
• 在函数作用域中定义的变量,都是局部变量,它只能在函数内部被访问

b = 222


def fn():
	global a # global 声明变量是全局变量
    a = 456
    def fn1():
        print('函数内部a = ', a)
        print('函数内部b = ', b)
    print('a1 = ',a)
    return fn1()
fn()

7.文档字符串
#用字符串的形式 写函数的作用 help(函数名)输出结果
def fn(a, b, c):
    """
    这是一个文档字符串的演示
    这个函数的作用是。。。。。
    函数的参数
    :param a: 作用, 类型, 默认值。。。
    :param b: 作用, 类型, 默认值。。。
    :param c: 作用, 类型, 默认值。。。
    :return:  123
    """

    return 123


help(fn)

8.命名空间

locals()用来获取当前作用于的命名空间,返回的是一个字典

a = 123
scope = locals()
scope = globals() #获取全局作用域
scope['a']
scope['b'] = 456 #添加
9.递归

9.1 基线条件
问题可以分解为最小的问题,当满足基线条件的时候,递归就不在执行了

9.2 递归条件
将问题继续分解的条件

def fn(n):
    # 基线条件
    if n == 1:
        return 1
    # 递归条件
    return n * fn(n-1)


r = fn(10)
print(r)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值