Python --- 函数

目录

前言:

1、函数介绍

1)函数介绍

2)自定义函数

2、函数的参数

1)函数参数的分类

2)形参与实参

3)可变类型参数与不可变类型参数

4)位置参数

5)关键字参数

6)默认值参数

7)可变长度参数

3、函数的返回值

1)return语句

4、函数作用域

1)函数作用域介绍

2)常用的作用域

3)global 关键字

4)作用域的优先级


前言:

函数的出现是为了解决:

        1. 代码重复性较高
        2. 可维护性差
1、函数介绍
2、函数的参数
3、函数的返回值
4、函数的作用域

1、函数介绍

1)函数介绍

函数是 可重复 使用的,用来实现单一功能的代码段。 使用函数描述程序中功能相似的代码段,
从而可以消除代码的重复性。
函数的作用:
1. 提高代码的复用性
2. 应用的模块性

2)自定义函数

语法:

2、函数的参数

1)函数参数的分类

02-函数的参数
  • 形参与实参
  • 可变类型参数与不可变类型参数
  • 位置参数
  • 关键字参数
  • 默认值参数
  • 可变长度参数

2)形参与实参

  • 形参:就是函数 定义 时传入的参数,没有实际的值,通过别人赋值后才有意义,相当于变量。
  • 实参:就是函数 调用 时传入的参数,是一个实际存在的参数

3)可变类型参数与不可变类型参数

  • 不可变类型参数在函数体内 对变量重新赋值 ,相当于重新开辟了一块内存来保存值
  • 可变类型参数在函数体内可以 改变原有的值

1.可变类型参数

def my_test_2(a):
    print(f"这是转入的a:{a}")
    a += 1
    print(f"这是变化后的a:{a}")


a = 1
print(f"这是调用函数前的b:{a}")
my_test_2(a)
print(f"这是调函数后的b:{a}")
 

2.不可变类型参数

def my_test_2(a):
    print(f"这是转入的a:{a}")
    a.append(5)
    print(f"这是变化后的a:{a}")


li = [1, 2, 3]
print(f"这是调用函数前的b:{li}")
my_test_2(li)
print(f"这是调函数后的b:{li}")

运行结果:

4)位置参数

  • 位置参数就是实参与形参 个数一致(不一样时会报错),位置对应

5)关键字参数

  • 形参 = 实参 形式指定,不论参数位置
get_sum(sum1 = 10, sum2 =30)

6)默认值参数

  • 形参处进行赋值,所以当调用时不传该参数就默认使用形参处的值。当调用时传了该参数,则覆盖掉默认参数。
def cfb(x=1):
    for i in range(1, x+1):
        for j in range(1, i+1):
            print(f"{i}*{j}={i*j}", end='\t')
        print()

cfb()

#输出:1*1=1
def cfb(x=1):
    for i in range(1, x+1):
        for j in range(1, i+1):
            print(f"{i}*{j}={i*j}", end='\t')
        print()

cfb(3)

# 输出:
1*1=1	
2*1=2	2*2=4	
3*1=3	3*2=6	3*3=9	

7)可变长度参数

  • *args 接收时会转为 元组 数据类型
  • **kwargs 接收时会转为 字典 数据类型

注意:名称可任意,但前面要加*

def get_sums(*args):
    print(args, type(args))


get_sums(1, 2)
get_sums(1, 2, 3, 4, 5)


#输出:
(1, 2) <class 'tuple'>
(1, 2, 3, 4, 5) <class 'tuple'>

如果*args后面还有其他参数,则在实参部分需要通过关键字参数指定
 

def test(*args, a):
    print(args, a)


test(1, 2, 3, a=4)


# 输出:
(1, 2, 3) 4

3、函数的返回值

1)return语句

Python 提供了 return 语句用于从函数中返回,当程序执行到 return 语句时,程序从函数中返回
函数调用 的地方。
 
作用:
  • 提前退出函数
  • 返回值到函数调用处
def test():
    print("这是return之前")
    return
    print("这是return之后")


print("调用函数之前")
test()
print("调用函数之后")

#输出:
调用函数之前
这是return之前
调用函数之后
def test2():
    a = 1
    b = 2
    c = 3
    return a
    return b
    return c


print(test2())

#输出:
1

注意:

1. 函数体中 没有 return 语句时,函数运行结束, 则默认返回 None ,也被称为隐含返回值
2. 函数有多个返回值时,值与值直接用 逗号 隔开,且默认为 元组 。如:return 值1,值2

def test2():
    a = 1
    b = 2
    c = 3
    return a, b, c


print(test2(),type(test2()))

#输出:(1, 2, 3) <class 'tuple'>

4、函数作用域

1)函数作用域介绍

在 Python 中,程序的变量并不是在哪个位置都可以访问的, 访问权限 决定于这个变量是在哪里赋
值的。

2)常用的作用域

Python 的作用域主要分为以下4种:
  • L(local):局部作用域,即函数中定义的变量;
  • E(enclosing):嵌套的父级函数的局部作用域;
  • G(global):全局变量,就是模块级别定义的变量;
  • B(build-in):内建作用域,系统固定模块里面的变量;

3)global 关键字
 

当我们需要在函数内部将 局部变量 修改为 全局变量 时,我们可以将函数内部的局部变量通过
global 关键字声明为全局变量。
语法: global 局部变量

4)作用域的优先级

eg:打印乘法表

def chengfabiao(n):
    print(f"------------{n}*{n}乘法表---------------")
    for i in range(1, n+1):
        for j in range(1, i+1):
            print(f"{j}*{i}={j*i}", end='\t')
        print()


n = int(input("请输入您想打印几乘几的乘法表:"))
chengfabiao(n)

运行结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我和程序有一个能跑就行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值