当前位置: 首页 > news >正文

Python---函数

文章目录

  • 目录

    前言

    一.函数的创建和调用

    参数传递

     特殊参数

    二.变量


前言

 在python中,函数的应用非常广泛,在前面我们已经多次接触过函数,例如用于输出的print()函数,用于输入的函数input(),以及生成一系列整数的range()函数,这些都是python内置的标准函数,可以直接使用,除了可以直接使用标准函数外,python中还支持自定义函数,即通过将一段规律的,重复的代码定义为函数,来达到一次编写,多次调用的目的。使用函数可以提高代码的重复利用率。


一.函数的创建和调用

创建函数也称为定义函数,可以理解为创建一个具有某种用途的工具。使用def关键字实现,具体语法格式如下:

def 函数名(【形式参数】):函数中的代码

 调用函数也就是执行函数。调用函数就i相当于使用创建的工具,调用函数的基本语法如下:

函数名(【实际参数】)
参数:用于指定各个参数的值,如果需要传递多个参数值,可以使用逗号隔开

参数传递

在Python中,函数定义时可以包含形式参数(也称为形参),这些参数是函数定义时声明的,用于接收函数调用时传入的实际参数(也称为实参)的值。

  • 形式参数是函数定义的一部分,用于指定函数在执行时所需的输入。它们通常用于在函数体内引用传递给函数的值。
  • 实际参数是函数调用时提供给函数的值。它们可以是字面值、变量、表达式等,用于实际传递给函数的形式参数。

演示案例:求和

def sum(a,b):print(a+b)
sum(10,20)

 特殊参数

默认参数

在Python函数中,可以为参数提供默认值,这些参数被称为默认参数。如果调用函数时没有为这些参数提供值,那么就会使用默认值。

以下是一个使用默认参数的函数的示例:

def greet(name, message="Hello"):print(message, name)

在这个例子中,函数greet有两个参数:namemessagemessage参数被设置为默认值"Hello"。当调用函数时,如果只提供了name参数,而没有提供message参数,那么将会使用默认值"Hello",如果提供了message参数,那么将会使用提供的值。

注意:默认参数只能使用不可变数据类型。

可变参数

在Python中,函数的可变参数是指在函数定义时,参数的数量是可变的,可以传入任意数量的参数。Python中有两种方式定义可变参数:*args和**kwargs。

使用*args可以接收任意数量的位置参数,这些参数会被封装成一个元组。下面是一个例子:

def sum_numbers(*args):total = 0for num in args:total += numreturn total
print(sum_numbers(1, 2, 3))  # 输出:6

在这个例子中,sum_numbers函数使用了*args来接收任意数量的位置参数。在函数内部,它把接收到的所有参数封装成一个元组,并对这个元组中的每个元素进行求和操作 

关键字参数

使用**kwargs可以接收任意数量的关键字参数,这些参数会被封装成一个字典。下面是一个例子:

def print_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")
print_info(name="Alice", age=25, city="New York")

  在这个例子中,print_info函数使用了**kwargs来接收任意数量的关键字参数。在函数内部,它把接收到的所有参数封装成一个字典,并遍历打印出每个键值对。

二.变量

在Python中,全局变量是在整个程序中都可以访问的变量,而局部变量则是在特定的函数或代码块中定义的变量,只能在其所在的范围内访问。

例如,下面的代码演示了全局变量和局部变量的概念:

# 全局变量
global_var = 10
def my_function():# 局部变量local_var = 20print("局部变量 local_var =", local_var)# 访问全局变量print("全局变量 global_var =", global_var)
my_function()
# 访问全局变量
print("全局变量 global_var =", global_var)
print("局部变量 local_var =", local_var)

区别1:局部变量无法在全局被调用 

上面的案例输出结果如下, 当我们在函数外调用局部变量时会提示局部变量未被定义不可调用。

区别2:若函数未声明变量为全局变量,那么函数中的全局变量会被当做局部变量。

函数中无法直接修改全局变量的值,要在函数中修改全局变量的值,需要使用global关键字声明该变量为全局变量。

演示案例:fn()函数中的num是和全局变量num重名的局部变量,尽管函数尝试给全局变量赋值,全局变量也不会改变,而modify_fn()函数中声明了num是全局变量,然后可以直接修改该变量的值

def fn():num = -100print(f"函数中全局变量num={num}")def modify_fn():global numnum = 0print(f"函数中全局变量num={num}")num = 100
fn()
modify_fn()
print(f"全局变量num修改后={num}")


总结


http://www.mrgr.cn/news/7849.html

相关文章:

  • 【Java 优先队列(小顶堆) 分治法 实现合并k个排序链表】
  • 爵士编曲:调式音阶 音阶同和弦 中古调式/教会音阶 旋律小调 减音阶 半音阶 Bebop
  • vue---echarts环形图
  • MyBatis-Plus分页插件使用详解
  • SGM(Score-Based Generative Model)扩散模型简介
  • K8S Secret
  • 批量自动校正图片、PDF文档方向工具
  • [数据集][目标检测]考场行为作弊检测数据集VOC+YOLO格式4413张4类别
  • 基础概念与简单数据结构的学习笔记
  • 虚拟机安装centos7-桥接模式
  • [MRCTF2020]Hello_ misc
  • Flutter【01】状态管理
  • 【GNSS接收机】开源导航接收机
  • 【MySQL】字符串存储类型比较
  • EXCEL 分组后找出满足条件的行拼接起来
  • python 多进程 多线程 程序
  • Git 版本控制操作
  • Adobe After Effects的插件--------CC Cylinder
  • uniapp(微信小程序如何使用单选框、复选框)
  • conda虚拟环境中安装cuda和cudnn