我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 函数的定义与调用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 函数的定义与调用

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的博客
🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
🥭本文内容:Python 函数的定义与调用


Python 函数的定义与调用


定义和调用函数

Python 中使用def语句创建函数,其一般的格式如下所示:

def name(arg1, arg2, ...,argN):    statements

下面这段代码定义了一个简单函数。

def repeator(s, n):    result = s * n    print(result)

这段代码仅仅是对函数的定义,并没有调用执行。这条定义语句运行后会新建一个名为repeator的变量名,其类型为function,即函数。

def repeator(s, n):    result = s * n    print(result)print(type(repeator))#  

与内置函数一样,定义完函数后,可以通过函数名调用执行。

def repeator(s, n):    result = s * n    print(result)repeator('嗷', 3)# 嗷嗷嗷

在很多情况下,函数需要将计算的结果返回到调用处。在这类函数的函数体中,通常包含一条return语句:

def name(arg1, arg2, ...,argN):    statements     return value

在创建函数时, 没有在函数体中添加return语句,Python 也会默默地在函数体最后添加一条return None

def repeator(s, n):    result = s * n    print(result)value = repeator('嗷', 3)# 嗷嗷嗷print(value)# None

函数如果以返回值来输出:

def repeator(s, n):    result = s * n    return resultprint(repeator('嗷', 3))# 嗷嗷嗷

在 Python 中, 还允许在函数中返回多个值。 只需将返回值以逗号隔开, 放在return关键字后面即可。

def calculator(m, n):     return m+n, m-n, m*n, m/ni, j = 2, 4r1, r2, r3, r4 = calculator(i, j)print(f'{i}{j} 的加减乘除运算结果是:{r1}{r2}{r3}{r4}')# 2 和 4 的加减乘除运算结果是:6,-2,8,0.5

在这里总结一下函数调用的四个步骤:

  1. 程序执行到函数调用时,在调用处暂停,等待函数执行完毕;
  2. 将实参赋值给函数的形参;
  3. 执行函数体中的语句;
  4. 调用结束后,回到调用前暂停处继续执行,如果函数体中执行了return语句, return关键字后的值会返回到暂停处,供程序使用,否则函数返回None值。

函数参数

参数传递

参数的传递过程,实际上是一个赋值的过程。在调用函数时,调用者的实际参数自动赋值给函数的形式参数变量。

def avg(m, n):    return (m + n) /2print(avg(5, 2))# 3.5

不可变和可变类型参数

目前我们所学习的不可变类型包括:整型、浮点型、字符串和元组,可变类型有:列表、字典和集合等。这些都可以作为参数的类型。但参数在函数中使用时,这两种类型的表现有所不同。

下面的代码调用时,传递的是不可变类型的参数:

def priceChanger(p):    p = p + 10     print('改变后的价格:{:.2f}'.format(p))price = 10.8priceChanger(price)# 改变后的价格:20.80print(price)# 10.8

在使用可变参数时,函数体中可以改变参数的元素:

def contentChanger(name_list):    name_list[0], name_list[1] = name_list[1], name_list[0]    print('函数中的 name_list:', name_list)language_name = ['C', 'Python']contentChanger(language_name)# 函数中的 name_list: ['Python', 'C']print('调用函数后的 language_name:', language_name)# 调用函数后的 language_name: ['Python', 'C']

因此,在使用可变类型参数时需要特别注意,如果在函数中修改了参数的元素,这种修改会影响调用者的变量。 如果想消除这种影响,可以使用列表copy方法或者使用分片操作创建新列表。


位置参数

位置参数是调用函数为形参赋值的一种默认方式。实参与形参按照从左到右的位置顺序依次赋值。

def myMinus(num1, num2):     return num1 - num2print(myMinus(5, 2))# 3

赋值顺序改变将得到不同的结果。

def myMinus(num1, num2):     return num1 - num2print(myMinus(2, 5))# -3

关键字参数

为了避免位置参数赋值带来的混乱,Python 允许调用函数时通过关键字参数的形式指定形参与实参的对应关系。 调用者使用name=value的形式来指定函数中的哪个形参接受某个值:

def myMinus(num1, num2):     return num1 - num2print(myMinus(num1=5, num2=2))# 3print(myMinus(num2=2, num1=5))# 3

指定默认参数值

在函数定义时,可以为参数指定值。这样当函数调用者没有提供对应参数值时,就可以使用指定的默认值。 指定默认参数值在 Python 的函数中广泛存在。例如,打印函数print,在查看其帮助时,其函数的部分描述如下:

print(...)    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)        Prints the values to a stream, or to sys.stdout by default.    Optional keyword arguments:    file:  a file-like object (stream); defaults to the current sys.stdout.    sep:   string inserted between values, default a space.    end:   string appended after the last value, default a newline.    flush: whether to forcibly flush the stream.

可以看到,print函数的sependfileflush参数都指定了默认值。

print('C', 'C++', 'Java', 'Python')# C C++ Java Python

如果调用时指定了sep参数的值,则会使用该值来连接每个打印的值。

print('C', 'C++', 'Java', 'Python', sep='_')# C_C++_Java_Python

在定义函数时, 为形参指定默认值, 就可以让该形参在调用时变为可选:

def myMod(x, y=2):     return x % yprint(myMod(13,4))# 1print(myMod(13))# 1

任意数量参数

Python 允许在定义函数时使用单星号*来收集位置参数,双星号**收集关键字参数。

单星号*收集位置参数

单个星号将一组可变数量的位置参数组合成参数值的元组。在函数内部可以通过访问元组中的每个元素来使用参数。

def m_value(*values):    max_value = max(values)    min_value = min(values)    print(f'最大值: {max_value}, 最小值: {min_value}')m_value(8, 6, 7, 4, 3, 9)# 最大值: 9, 最小值: 3

双星号**收集关键字参数

针对形参的关键字参数赋值形式, 利用 Python 定义函数时, 在形参前面加上双星号**来定义收集关键字参数的形参。此时形参是字典类型。

def f(**info):    if 'name' not in info.keys():        print('必须拥有名称信息。')    else:        print(info['name'] + '的诞生年份:' + info.get('time', '不详'))f(name = 'C', time = '1972')# C的诞生年份:1972f(name = 'Python')# Python的诞生年份:不详

解包参数

在调用函数时,实参也可以使用***语法。此时不是收集参数,正好相反, 实参前加上***执行的是参数解包。 通常来说, 在列表、元组等类型的实参值前加上*, 将这些类型的元素解包成位置参数的形式;在字典类型的实参值前加上**,将字典的元组解包成关键字参数的形式。

当调用者的数据存储在列表中时, 可以通过在列表前加上*对列表解包来实现位置参数形式的调用。

当调用者的数据存储在字典中时, 可以通过在字典前加上**对字典解包来实现关键字参数形式的调用。

def f(name, time='不详'):    if name and len(name) > 0:        print(name + '的诞生年份:' + str(time))    else:        print('必须拥有名称信息。')info1 = ['C', '1972']f(*info1)# C的诞生年份:1972info2 = {'name': 'Python', 'time': '1989'}f(**info2)# Python的诞生年份:1989

来源地址:https://blog.csdn.net/qq_63585949/article/details/127189533

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 函数的定义与调用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 函数调用&定义函数&函数参

一.函数调用在python中内置了很多函数,我们可以直接调用 。想要调用函数首先要知道函数的名称及包含的参数,还可以通过查看python官方的文档:https://docs.python.org/3/library/functions.ht
2023-01-30

实例讲解Python中函数的调用与定义

调用函数:#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 函数调用 >>> abs(100) 100 >>> abs(-110) 110 >>> abs(12.34) 12.3
2022-06-04

详解shell 函数定义与调用

一、Shell函数定义格式 shell函数定义格式,各部分说明如下: [ function ]等中括号括起来部分----表示可选(即可有可无) your_function_name部分----为函数名 your_shell_commands
2022-06-04

VB中的函数怎么定义与调用

在VB中,函数可以使用Function关键字来定义。函数的语法如下:Function functionName(parameters) As returnType' 函数的逻辑代码functionName = returnVal
VB中的函数怎么定义与调用
2024-04-03

python如何调用自定义函数

要调用自定义函数,需要按照以下步骤进行:1. 定义一个函数。例如,我们定义一个名为`add_numbers`的函数,用于求两个数的和。```pythondef add_numbers(a, b):return a + b```2. 调用函数
2023-09-29

python函数怎么定义和调用

这篇文章给大家分享的是有关python函数怎么定义和调用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python函数的定义和调用:1、使用def关键字定义函数吗,代码为【def 函数名(参数1,参数2,参数3.
2023-06-08

python定义函数后怎么调用

要调用一个在Python中定义的函数,可以按照以下步骤操作:在函数定义后的代码中,编写调用函数的代码。使用函数名后跟一个括号来调用函数,例如function_name()。如果函数接受参数,可以在括号内传递相应的参数。参数的数量和类型需
2023-10-23

PHP学习笔记:函数的定义与调用

在PHP中,函数是一段可以重复使用的代码块。函数能够提高代码的可读性和重用性,使代码更加模块化。本文将介绍如何定义和调用PHP函数,并给出具体的代码示例。一、函数的定义在PHP中,函数的定义使用关键字function。函数定义的一般语法如下
2023-10-21

python中如何调用自定义函数

要调用自定义函数,首先需要定义该函数,然后在需要调用该函数的地方使用函数名加上括号来调用它。例如:def my_function():print("Hello, world!")my_function() # 调用自定义函数在上面的例子
python中如何调用自定义函数
2024-03-14

python定义内置函数怎么调用

Python中的内置函数可以直接通过函数名来调用。例如,要调用内置函数print(),可以使用以下方式:print("Hello, World!")同样地,要调用内置函数len(),可以使用以下方式:my_list = [1, 2, 3
python定义内置函数怎么调用
2024-02-29

Golang函数定义与调用规则详解

函数定义规则:函数名、参数列表、返回值类型明确函数调用:函数名+实参列表,实参顺序和类型对应实战案例:计算两个数之和求一个数的阶乘参数传递:值传递,函数内修改参数值不影响函数外值可变参数放在参数列表最后,使用 ... 表示Golang 函数
Golang函数定义与调用规则详解
2024-04-16

怎么在shell中定义与调用函数

怎么在shell中定义与调用函数?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Shell函数定义格式shell函数定义格式,各部分说明如下:[ functi
2023-06-09

shell函数定义与调用的方法是什么

在Shell中,可以使用以下方法来定义和调用函数:1. 定义函数:```function_name() {# 函数体# 可以在函数体内部使用参数 $1, $2, ... 来引用传递的参数}```或者```function function_
2023-09-22

如何在Python中定义和调用函数

如何在Python中定义和调用函数Python是一种简洁、易读且功能强大的编程语言,其中函数是Python中的一个重要概念。函数是一段被命名并可以重复使用的代码块,可以接收参数并返回结果。本文将介绍如何在Python中定义和调用函数,同时提
2023-10-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录