python 函数调用

这篇具有很好参考价值的文章主要介绍了python 函数调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、函数的定义

首先语法格式:

def 函数名(参数列表):
    函数体(功能代码块)

二、函数的调用

1.求两个整数的和:

def add(a,b):
    sum = a+b
    return sum
n = int(input('请输入第一个数字:'))   #注意int的添加,不然结果只能是拼接符“+”拼接的字符串
n1 = int(input('请输入第二个数字:'))
math = add(n,n1)
print(math)

运行结果:

请输入第一个数字:1
请输入第二个数字:2
3

2.关键参数
关键参数指通过对形参赋值的方式传递参数,避免了传递实参过程中,与定义函数的形参顺序不一致的情况。

def student(name,score):
    print(f"{name}的分数为{score}")
n = input('请输入学生名字:')
n1 = input("请输入学生分数:")
 
student(score=n1,name=n)

运行结果:

请输入学生名字:小明
请输入学生分数:100
小明的分数为100

3.默认参数
在函数定义时参数列表中的某个形参有值,则这个参数为默认参数。默认参数必须放在非默认参数的右侧。否则函数将出错。

def student(name,score,love="打篮球"):
    print(f"{name}的分数为{score},喜欢{love}")
n = input('请输入学生名字:')
n1 = input("请输入学生分数:")
 
student(score=n1,name=n)
#当然可以改变默认参数,在调用参数时改:
student(score=n1,name=n,love="movies")

运行结果:

请输入学生名字:小明
请输入学生分数:100
小明的分数为100,喜欢打篮球
小明的分数为100,喜欢movies

4.不定长参数
两种不定长参数,第一种是*XXX,在传入额外的参数时可以不用指明参数名,直接传入参数值即可。第二种是**XXX,这种类型返回的是字典,传入时需要指定参数名。

加了一个星号 * 不定长参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。加了两个星号 ** 的参数会以字典的形式导入,存放已命名的变量参数。

def add(a,b,*args,**kwargs):
    sum = a+b
    for i in args:
        sum +=i
    for i in kwargs:
        sum +=kwargs[i]
    return sum
print(add(1,2,3,4,5,6,7))
print(add(1,2,3,4,c=7,d=7))

运行结果:

28
24

5.函数调用的嵌套

def output(mess):
    print(mess)
 
def test(func,arg):
    func(arg)
test(output,"1+2=3")

运行结果:

1+2=3

6.函数名作为其他数据类型的元素

  def print_out(mess):
    print(mess)
 
list = [(print_out,"hhh"),(print_out,"love")]
for (fun,val) in list:
    fun(val)

运行结果:

hhh
love

三、匿名函数

指函数是没有函数名称的,临时使用的微函数。使用 lambda 表达式来声明,语法格式如下:

lambda [arg1 arg2 , ... , argn] : 表达式
应用场景:如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化
注意:1.[arg1 ,arg2 , ... , argn ] 为函数的参数列表,可有可无
           2.表达式: 表示函数体,必须有返回值
           3.lambda 表达式只可以包含一个表达式,计算结果可看作是一个函数的返回值。
           4.虽然不允许包含复杂的语句,但表达式可以调用其它函数。

1.基本使用

sum = lambda num1, num2: num1 + num2
print(sum(4, 9))
相当于:
def sum(num1, num2):
    return num1 + num2

运行结果:

13

2.lambda 表达式声明的匿名函数,也可以作为自己定义函数的实参

def fun(num1, num2, func):
    return func(num1, num2)
print(fun(5, 4, lambda num1, num2: num1 + num2))
print(fun(5, 4, lambda num1, num2: num1 - num2))

运行结果:

9
1

3.带判断的lambda

fun = lambda  a,b:a if a>b else b
 
print(fun(20,22))

运行结果:

22

4.lambda 表达式声明的匿名函数,也可以作为列表或字典的元素

power = [lambda x:x**2,lambda x:x**3,lambda x:x**4]
 
print(power[0](2),power[1](2),power[2](2))
 
lv = {1:lambda x:print(x),2:lambda x = "回头科科":print(x)}
lv[2]()
lv[1]("欢迎您")

运行结果:

4 8 16
hello
world

参考链接:

https://blog.csdn.net/jcf52/article/details/123238718文章来源地址https://www.toymoban.com/news/detail-620579.html

到了这里,关于python 函数调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】STL 算法 ① ( STL 算法相关头文件 | 函数对象 / 仿函数 简介 | 函数调用操作符 | 重写函数调用操作符的类 | 函数对象 与 普通函数区别 )

    标准模板库 STL 算法 都定义在 algorithm , numeric 和 functional 三个头文件中 ; 使用 STL 标准模板库 算法时 , 导入上述 3 个头文件 , 导入时根据需求导入即可 , 不必都导入 ; algorithm 头文件 是 3 个 STL 算法头文件中 包含算法最多的一个 , 包含常用的 : 比较算法、交换算法、查找算法

    2024年01月16日
    浏览(44)
  • 【C语言】函数的定义及调用

            刚刚结束了数组的介绍,有需要的猿友可以去看我之前的文章,从这篇文章开始,进行函数相关的介绍,代码均来自VS编译环境下。 目录 一、定义函数的方法  二、调用函数 1.函数调用的形式

    2024年02月05日
    浏览(31)
  • 5.5 汇编语言:函数调用约定

    函数是任何一门高级语言中必须要存在的,使用函数式编程可以让程序可读性更高,充分发挥了模块化设计思想的精髓,今天我将带大家一起来探索函数的实现机理,探索编译器到底是如何对函数这个进行实现的,并使用汇编语言模拟实现函数编程中的参数传递调用规

    2024年02月12日
    浏览(31)
  • 你知道C语言函数调用的2种方式吗?传值调用 && 传址调用

    本篇博客会讲解C语言函数调用的2种方式,分别是:传值调用和传址调用。这2种函数调用方式有什么区别呢?为什么会有不同的效果呢?分别有哪些用途呢?下面我会一一展开。 传值调用,即通过传递变量的值来调用函数。 传址调用,即通过传递变量的地址来调用函数。 比

    2023年04月27日
    浏览(40)
  • 【C语言】函数调用及创建,并将数组传参到函数

      🎥 岁月失语唯石能言的个人主页         🔥 个人栏专: 秒懂C语言 ⭐ 若在许我少年时,一两黄金一两风      目录 前言 一、函数的概念 二、库函数 2.1 标准库和头文件 2.2库函数的使用方法 2.2.1功能 2.2.2库函数的头文件 2.2.3例子 2.2.4库函数文档的一般格式 三、自定义

    2024年02月04日
    浏览(32)
  • Matlab之智能优化算法函数调用

    目录 1.句柄函数 2.遗传算法 3.粒子群算法 4.模拟退火 1.句柄函数         句柄函数即我们要求的目标函数,以下三种算法的调用仅是求解最小值,若要求目标函数的最大值,可在返回结果中加负号。 句柄函数图像:                          画图代码: 2.遗传算

    2024年02月10日
    浏览(29)
  • 【C语言】函数的定义、传参与调用(二)

    💗个人主页💗 ⭐个人专栏——C语言初步学习⭐ 💫点击关注🤩一起学习C语言💯💫   目录 导读: 1. 函数的嵌套调用 1.1 什么是嵌套调用 1.2 基础实现 1.3 调用流程解析  2. 函数的链式访问 2.1 什么是链式访问  2.2 基础实现 3. 函数递归 3.1 什么是递归 3.2 递归的两个必要条

    2024年02月08日
    浏览(37)
  • C语言题目 - 调用qsort函数对数组进行排序

    如题 其实没什么难的,只要严格按照 qsort 函数的参数来填充即可,这里要用到 函数指针 。 qsort 函数的原型如下: void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *)); 参数说明: base :指向需要排序的数组的指针,数组中每个元素的大小应为 size 字节。

    2024年02月11日
    浏览(31)
  • 静态分析C语言生成函数调用关系的利器——GCC

    在《静态分析C语言生成函数调用关系的利器——cally和egypt》中我们介绍了如何使用GCC生成RTL文件,然后再借助cally和egypt来分析出调用关系的方法。GCC自身有命令可以生成代码内部的调用关系,即-fcallgraph-info参数。 Makes the compiler output callgraph information for the program, on a per-ob

    2024年01月25日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包