首页 > 编程语言 >python中函数的定义和调用

python中函数的定义和调用

时间:2024-10-14 22:50:24浏览次数:3  
标签:传参 调用 定义 python args 关键字 参数 不定 函数

1.什么是函数?

       函数是编程中的一种封装机制,用来将一组可重复使用的代码片段组织在一起,以便在不同的地方调用。函数可以接收输入(称为参数),执行特定的操作,并且可以返回输出(称为返回值)。函数的主要目的是提高代码的复用性、可读性和组织性。

2. 函数定义的语法:

       使用 def 关键字定义函数,接下来是函数名和参数列表。参数列表可以为空,也可以包含多个参数,多个参数用逗号分隔。函数体是缩进的代码块,它包含函数的执行逻辑。return 语句用于返回函数的结果,return 是可选的,如果没有 return,函数默认返回 None

 

3. 调用函数的语法

 

示例:

 

4.函数的多个返回值:

函数可以同时返回多个值,返回的值可以用不同的变量接收,这些返回值会被打包成一个元组

注意点:

  • 函数可以返回多个值,多个返回值以逗号分隔,默认打包成元组返回。
  • 调用时,可以通过多个变量解包来获取每个返回值。

5. 多种传参方式: 

(1)位置参数:

按参数定义的顺序进行传参。调用函数时,实参的顺序必须与形参顺序匹配。

(2) 关键字参数

使用参数名进行传参,顺序可以与定义时不同,调用时不必按顺序,只需提供参数名即可。

 

(3) 混合位置传参和关键字传参

可以结合位置参数和关键字参数,不过要注意,位置参数必须出现在关键字参数之前。

(4)缺省参数(默认参数)

在函数定义时,可以为参数指定一个默认值,这样调用函数时如果没有为该参数传递值,则会使用默认值。 

缺省参数需要放在非缺省参数之后,否则会导致语法错误。

6. 不定长参数 

(1)*位置不定长参数(args)

使用 *args 可以接收任意数量的位置参数,传入的参数会被打包成元组。

*args 可以让函数接受不定数量的参数,实参传入后会变成一个元组。

(2)**关键字不定长参数(kwargs)

使用 **kwargs 可以接收任意数量的关键字参数,传入的参数会被打包成字典。

**kwargs 接收的是字典类型,参数传入时需要以键值对的形式给出。

7.总结:

  1. 函数的返回值:可以通过 return 返回多个值,用元组的形式返回并可以通过解包获取。
  2. 参数传递方式
    • 位置参数:按顺序传递参数。
    • 关键字参数:通过参数名传递,顺序无关。
    • 混合参数:位置参数在前,关键字参数在后。
  3. 缺省参数:可以为参数设置默认值,未传值时会使用默认值。
  4. 不定长参数
    • *args 接受任意数量的位置参数,传入的参数打包为元组。
    • **kwargs 接受任意数量的关键字参数,传入的参数打包为字典。

练习源码:

#函数的多个返回值
def test_return():
    return 1,"word",False
x,y,z=test_return()
print(x,y,z)

#多种传参方式
def use_info(name,age,sex):
    print(f"用户的姓名:{ name},年龄是:{age},性别是:{sex}")
#位置传参
use_info("小明",19,"男")

#关键字传参
use_info(age=18,name='小花',sex=19)
#混合位置传参和关键字传参
use_info('小美',sex='女',age=22)

#缺省参数(默认值)
def use_info1(name,age=30):
    print(f"姓名是:{name}.年龄为:{age}")
use_info1('小刚')
use_info1('小麦',16)

#不定长-位置不定长  *号
#不定长定义的形式参数会作为元组存在,接受不定长数量的参数传入
def user_info3(*args):
    print(f"args参数的类型是:{type(args)},内容是:{args},第一个传进的参数是{args[0]}")
user_info3(1,2,3,4,5)

#不定长 - 关键字不定长 **号
def user_info4(**kwargs):
    print(f"args参数的类型是:{type(kwargs)},内容是:{kwargs}")
user_info4(name='小鸟',age=22)

标签:传参,调用,定义,python,args,关键字,参数,不定,函数
From: https://blog.csdn.net/2301_78459596/article/details/142863448

相关文章

  • 【linux内核】系统调用与内核API
    原创星火可以燎燃星火技术今天,我们将探讨系统调用的概念以及Linux内核API是如何工作的,这将帮助我们更好地理解Linux系统的工作原理。一、系统调用的重要性系统调用是操作系统提供给应用程序的一组接口,使得应用程序可以直接请求操作系统内核执行某些任务,比如读写文件、创建......
  • python中绘图的图表和曲线样式总结(GPT直出)
    在绘制图表时,常见的图标样式(marker)和曲线样式(linestyle)可以帮助我们通过图形区分不同的数据系列。以下是一些常用的图标和曲线样式,以及如何在代码中使用它们的方式:1.常见的图标样式(marker)在matplotlib中,图标样式通过marker参数指定,常见的图标样式如下:图标样式代码(ma......
  • Python数学建模算法与应用
    习题5.4importnumpyasnpfromscipy.optimizeimportminimizedefobjective_function(x):returnnp.sum(np.sqrt(x))deflinear_constraint(x):weights=np.arange(1,101)return1000-np.dot(x,weights)constraints=[{'type':'ineq',&......
  • python画图|三维动态柱状图绘制
    【1】引言前序已经学习了二维动态柱状图绘制教程,本次尝试探索三维动态柱状图绘制教程:【2】项目设计三维和二维的不同,要在一开始就定义。二维的定义简单粗暴,只需要一行代码:fig,ax=plt.subplots()#定义要画图到了三维则需要两行,一行说要画三维图,一行说这个图使用哪......
  • Python编程基础之变量与数据类型
    一、变量    在Python中,变量是用来存储数据值的标识符。变量的命名需要遵循一定的规则:1. 变量名只能包含字母、数字和下划线。2. 变量名不能以数字开头。3. 变量名不能是Python中的关键字(如if、else、for等)。    Python可以这样定义变量:my_variable=......
  • 表达式计算,递归的思路,表达式本身的定义就是递归
    #include<iostream>usingnamespacestd;intfactor_value();intterm_value();intexpression_value();intfactor_value()//因子{   intresult=0;   charop=cin.peek();//用op存储缓冲区第一个字符,但并不从键盘缓冲区取走   if(op=='(')//看是......
  • 从零开始的python学习(三)P25+P26+P27
    本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb 上节课学习......
  • 从零开始的python学习(三)P28+P29+P30+P31
    本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb上节课介绍了......
  • python笔试--输入输出总结(四)
    1、递归函数递归函数是一种在函数内部调用自身的函数。递归是一种强大的编程方法,常用于解决那些可以分解为更小、更简单的问题的问题。递归函数通常遵循以下定义:基本案例(BaseCase):递归函数必须有一个或多个基本情况,这些情况是函数不再调用自身就能直接求解的条件。基本情况是......
  • CANoe使用C#调用系统变量方法
    在汽车电子开发和测试领域,CANoe是一个不可或缺的工具,它广泛应用于网络仿真、测试和诊断。通过C#编程,开发者可以轻松地与CANoe的系统变量进行交互,实现对测试过程的实时监控和控制。本文将详细介绍如何使用C#设置和获取CANoe的系统变量,并提供相应的代码示例。1.背景......