11_Python函数基本概念和示例

news/2024/12/22 0:10:11/

在这里插入图片描述

函数

  • 函数是组织代码、提高代码复用性的基本工具。
  • 一个函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。
  • 函数类型:内置函数、自定义函数

定义函数

在 Python 中,使用 def 关键字来定义一个函数。

  • 函数可以有参数,也可以没有参数。
python">def function_name(parameters):"""文档字符串(docstring)- 描述函数的作用,可选"""# 在这里写上函数要执行的操作...return value  # 函数返回值,如果不写返回None。可以返回多个值(以元组形式)。

调用函数

定义好函数之后,可以通过函数名后面加上括号以及必要的参数来调用函数。

python">result = function_name(arguments)
# 这个代码只用于说明调用的格式,直接调用会报错,忽略报错即可。
# function_name 调用的函数名称
# arguments 参数
# 返回值赋值给result
  • 形参;函数定义时括号内的参数
  • 实参:函数调用时括号内的参数
  • 形参相当于变量,实参相当于变量的值。

参数传递

Python 函数的参数传递可以是以下几种类型:

  • 位置参数(必需参数):必须按照正确的顺序传入函数。
    • 根据定义的参数位置绑定变量。
    • 调用的参数数量必须和声明时一样。
    • 位置参数要放在默认参数前面。
  • 默认参数:可以给参数设置默认值,调用时如果不传该参数则使用默认值。
  • 关键字参数:通过参数名来指定参数值,这样就不必担心参数的顺序。
    • 关键参数可以和位置参数(必须参数)一起用,但是关键参数必须在位置参数(必须参数)的后面。
  • 可变参数(不定长参数):可以使用 *args 和 **kwargs 来传递任意数量的参数。
    • * 的变量名会存放所有未命名的变量参数,参数传入的时候,个数没有限制。
      • 序列的打包:在定义函数的时候,在函数形参前加 * ,将元素打包成元组的形式。
      • 序列的拆包:在函数执行的时候,在函数实参前加 * ,将序列进行拆包。

示例

下面是一个简单的 Python 函数示例

python">def greet(name, greeting='Hello'):"""返回一个问候语"""return f"{greeting}, {name}!"# 调用函数
print(greet('Alice'))  # 使用默认的问候语: Hello, Alice!
print(greet('Bob', 'Hi'))  # 使用自定义的问候语: Hi, Bob!

下面是可变参数的示例,参数将以元组形式打包。

python">def my_add(*args):print(args)sum_ = 0for arg in args:sum_ += argreturn sum_
python"># 多个参数
my_add(1,2,3,4)
python"># 传入元组
my_add(*(1,2,3,4,5))
python"># 传入列表,列表会被转换成元组
my_add(*[1,2,3,4,5,6])

返回值

函数可以使用 return 语句来返回值。如果没有 return 语句,函数会在执行完毕后自动返回 None。

python">def add(a, b):return a + bresult = add(2, 3)  # result 现在是 5
print(result)

文档字符串

良好的编程习惯是在每个函数开始处写上文档字符串,它用于解释函数的作用、参数和返回值。

python">def add(a, b):"""两个数相加并返回结果。参数:a -- 第一个加数b -- 第二个加数返回:int: 两个数的和"""return a + b

可以使用 __doc__ 属性访问函数的文档字符串:

python">print(add.__doc__)

函数是对象

在 Python 中,函数是一等对象,这意味着它们可以像其他数据类型一样赋值给变量、作为参数传递、作为其他函数的返回值等。

python">def make_multiplier_of(n):"""返回一个函数,该函数将输入乘以 n"""def multiplier(x):return x * nreturn multiplier# 创建一个乘以 5 的函数
times5 = make_multiplier_of(5)# 使用该函数
print(times5(3))  # 输出 15

掌握函数是理解 Python 高级编程和软件工程实践的关键。

附件

本文对应的jupyter notebook源码链接,欢迎下载练习:https://download.csdn.net/download/fx_yzjy101/89767220

如有问题请留言。


http://www.ppmy.cn/news/1527324.html

相关文章

Git rebase 的使用(结合图与案例)

目录 Git rebase 的使用Git rebase 概念Git rebase 原理rebase和merge的选择 Git rebase 的使用 在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase Git rebase 概念 **rebase概念:**用来重新应用提交(commits&#xff09…

通过mxGraph在ARMxy边缘计算网关上实现工业物联网

在当今的工业4.0时代,工业物联网(IIoT)已经成为制造业转型升级的关键技术之一。ARMxy边缘计算网关作为工业自动化和物联网的重要组成部分,能够为工厂车间提供实时的数据处理能力和智能化服务。而mxGraph作为一种流行的JavaScript库…

git报错,error: bad signature 0x00000000fatal: index file corrupt

报错 git -c diff.mnemonicprefixfalse -c core.quotepathfalse --no-optional-locks checkout daily --progress error: bad signature 0x00000000 fatal: index file corrupt 原因 git 仓库中索引文损坏 处理 1.该备份的先备份 2.删除索引并重置 rm -f .git/index git r…

在云服务器上安装配置 MySQL 并开启远程访问(详细教程)

前言 MySQL 是最流行的开源关系数据库之一,常用于开发与生产环境中。本文将详细介绍如何在云服务器(如阿里云)上安装 MySQL,并配置允许从远程主机(如本地电脑)进行访问。 环境准备 操作系统:…

安卓网址自动添加%,显示网页异常

最近实现一个功能的时候,需要将接口传递的网址进行包裹处理,然后分享到外部,在安卓分享的时候,会默认将拼接的网址进行编码,将://等进行转码,在点击这个网址的时候就无法进入 例如 // 原始网址let origina…

JAVA—组件及事件处理

对于使用JAVA的GUI程序的学习了解,学习常用的组件,容器和常用的一些API 1.java Swing 概述 java Swing 包下提供了强大的用于开发桌面程序的API 理解面向对象编而简单学习一些内容 2.窗口 介绍: 窗口是基于JFrame类实例的一个底层容器&#…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(下)

往期知识点记录: OpenHarmony(鸿蒙南向开发)——轻量系统STM32F407芯片移植案例 OpenHarmony(鸿蒙南向开发)——Combo解决方案之W800芯片移植案例 OpenHarmony(鸿蒙南向开发)——小型系统STM32M…

搞安全必看——IPS和IDS到底有啥区别?

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 随着数字化转型的加速推进,网络安全已成为各行业不可或缺的一环。对于现代企业和组织而言&#x…