Python自定义函数

python系统中自带的一些函数就叫做内建函数,比如:dir()、type()等等,不需要我们自己编写。

还有一个第三方函数,它是其他程序员编译的一些函数,与您共享。

[En]

There is also a third-party function, which is some functions compiled by other programmers and shared with you.

内置函数和第三方函数都可以直接使用。

[En]

Both built-in functions and third-party functions can be used directly.

然后,我们为方便工作和学习而编写的函数称为自定义函数。

[En]

Then the functions we write to facilitate our work and study are called custom functions.

一、自定义函数

使用函数可以降低编程难度,通常将一个大而复杂的问题分解成一系列小问题,避免重复性工作,提高效率。

[En]

The use of functions can reduce the difficulty of programming, usually decompose a large and complex problem into a series of small problems, avoid repetitive work and improve efficiency.

函数的定义和调用:

在定制功能的过程中,您需要注意以下几点。

[En]

In the process of customizing functions, you need to be aware of the following.

1、def开头,代表定义函数
2、def和函数名中间要敲一个空格
3、之后是函数名,这个名字用户自己起的,方便自己使用就好
4、函数名后跟圆括号(),代表定义的是函数,里边可加参数
5、圆括号()后一定要加冒号: 这个很重要,不要忘记了
6、代码块部分,是由语句组成,要有缩进
7、函数要有返回值return

让我们用一个例子来理解这个定制函数。

[En]

Let’s use an example to understand the custom function.

二、函数参数

我们刚刚定义的函数没有添加任何参数,所以现在让我们尝试向该函数添加参数。

[En]

The function we just defined doesn’t add any parameters, so now let’s try to add parameters to the function.

函数可分为形参和实参。

[En]

Functions can be divided into formal parameters and actual parameters.

定义函数时,函数名后面括号中的变量名称为“形参”,或简称为“形参”。

[En]

When defining a function, the variable name in parentheses after the function name is called “formal parameter”, or “formal parameter” for short.

当一个函数被调用时,函数名后面括号中的变量名称为“实际参数”,或简称为“实参”。

[En]

When a function is called, the variable name in parentheses after the function name is called “actual parameter”, or “argument” for short.

形参可以调用以下类型的函数:

[En]

Formal parameters can call functions of the following types-

  • 必需参数
  • 关键字参数
  • 默认参数
  • 可变长度参数

我们尝试定义一个带参数的函数。

[En]

We try to define a function with parameters.

当我们直接调用该函数时,不可能在没有输入参数的情况下直接调用该函数,如下所示。

[En]

When we call this function directly, it is not possible to call the function directly without input parameters, as follows.

添加更多参数或添加更少参数也不成功。

[En]

Adding more parameters or adding fewer parameters is also unsuccessful.

我们需要给定函数的两个参数,对应 x 值与 y 值,则会得到函数该有的结果。

如果我们现在想要获取脚本的参数,应该怎样做呢?我们可以使用”sys.argv”来获取参数。

因此,我们可以看到传入的参数以列表的形式输出,如果我们想要获得传入的参数值,可以使用以下表示法。

[En]

So we can see that the incoming parameters are output as a list, and if we want to get the value of a parameter passed in, we can use the following representation.

通常,我们以第二个英文单词的大写格式定义函数,如下所示。

[En]

In general, we define a function in the capitalized format of the second English word, as shown below.

因此,我们运行后返回的结果如下所示。

[En]

So the result returned after we run it is as follows.

关键字参数与函数调用相关。在函数调用中使用关键字参数时,调用方通过参数名标识该参数。

[En]

Keyword parameters are related to function calls. When a keyword parameter is used in a function call, the caller identifies the parameter by the parameter name.

执行上述代码将直接返回结果。

[En]

Executing the above code will directly return the result.

如果在函数调用中没有为此参数提供值,则默认参数是假定为默认值的参数。

[En]

If no value is provided in the function call for this parameter, the default parameter is a parameter that is assumed to be the default value.

如果我们定义两个参数,一个是可变的,另一个是不可变的,如下所示。

[En]

If we define two parameters, one is variable and the other is immutable, as shown below.

当我们传入两个参数时,函数的输出值是这两个参数的总和,而当只传入一个参数时,则将总和与默认参数相加,如下所示。

[En]

When we pass in two parameters, the output value of the function is the sum of the two parameters, and when only one parameter is passed in, then the sum is added to the default parameter, as shown below.

如果我们直接定义参数,当没有传入任何值时,将直接运行默认参数值。

[En]

If we define the parameter directly, the default parameter value will be run directly when no value is passed in.

定义函数时,您可能需要一个处理更多参数的函数。这些参数称为可变长度参数,在函数定义中不作为必需参数和默认参数命名。

[En]

When defining a function, you may need a function that handles more parameters. These parameters are called variable length parameters and are not named in the function definition as required and default parameters.

具有非关键字变量参数的函数的语法如下:

[En]

The syntax for a function with a non-keyword variable parameter is as follows:

星号 (*) 放在保存所有非关键字变量参数值的变量名之前。 如果在函数调用期间没有指定额外的参数,则此元组保持为空。以下是一个简单的例子 –

执行上述代码后,您将获得以下结果。

[En]

After executing the above code, you will get the following results.

三、匿名函数

这些函数被称为匿名的,因为它们没有使用 def 关键字以标准方式声明。可以使用 lambda 关键字创建小型匿名函数。

lambda 表单可以接受任意数量的参数,但只能以表达式的形式返回一个值。它们不能包含命令或多个表达式。

匿名函数不能直接调用打印,因为 lambda 需要一个表达式。

lambda 函数有自己的本地命名空间,不能访问其参数列表和全局命名空间中的变量。

虽然 lambdas 是一个单行版本的函数,但它们并不等同于C 或 C++ 中的内联语句,其目的是通过传递函数来进行堆栈分配。

我们定义了一个简单的函数,可以使用如下所示的脚本。

[En]

We define a simple function that can use the script shown below.

但如果我们使用匿名函数,它会变得更简洁。

[En]

But if we use anonymous functions, it becomes more concise.

使用匿名函数有许多优点,例如:

[En]

There are many advantages to using anonymous functions, such as:

1、使用Python写一些脚本时,使用lambda可以省去定义函数的过程,让代码更加精简

2、对于一些抽象的,不会被别的地方再重复使用的函数,有时候很难给函数命名,使用lambda则不需要考虑命名的问题

3、使用lambda在某些时候能让代码更容易理解

lambda语句中,冒号前是参数,可以有很多个,逗号隔开,冒号右边则是返回值。

lambda语句构建的其实是一个函数对象。

我们也可以使用”reduce”来直接在函数加入参数,下面两张表示方法都能实现1到100相加的和,但是下面第二种方法看上去更加简洁。

我们也可以来实现1到5的阶乘,如下所示:

return [expression] 语句退出一个函数,可选地将一个表达式传回给调用者。没有参数的return语句与return None相同。

参考资料:

  1. ​​

  2. ​​

Original: https://blog.51cto.com/shaoniana/5637730
Author: 归来仍少年
Title: Python自定义函数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/500212/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 我的学习之路

    掌握一个知识和技能始终要以实践的成就感来驱动自我 最早工作接触到的其实是matlab。作为车企,这个软件还是比较常见的,缺点是价格贵,用的人少,但是是确实蛮方便的一个软件。随后对编…

    Python 2023年6月3日
    0144
  • 奇想大白话之《羊了个羊》为何火,技术很厉害吗?

    🤵‍♂️ 个人主页:奇想派👨‍💻 作者简介:奇想派,十年全栈开发经验,团队负责人。喜欢钻研技术,争取成为编程达人 🎖️!🗺️学海无涯苦作舟,🛤️编程之路无悔路!📝 如果文章对你有帮…

    Python 2023年10月20日
    087
  • 22.【终结篇】poco/airtest+pytest+allure+jenkins框架篇

    如果这些内容对你有帮助,也可以打开微信扫一扫,加关注: 前几篇文章已分享了所有代码层相关内容,并提供了源码文件,接下来看下怎么和jenkins配合使用。 为了更方便获取框架源码,下…

    Python 2023年9月12日
    076
  • PYTHON matplotlib和numpy的基本使用

    1. 绘图基本流程: 1 )导入matplotlib模块; 2 )写入x和y轴上的数据; 3 )通过plot对x和y上的数据进行绘制图形; 4 )展示图形; 课堂代码: ”’ i…

    Python 2023年9月2日
    084
  • 这个神器,让我的 Python 代码运行速度快了100倍

    Python 已经得到了全球程序员的喜爱,连续多期稳坐编程语言排行榜第一把交椅。但是还是遭到一些人的诟病,原因之一就是认为它运行缓慢。 要是有一款能够自动优化我们代码的神器该有多好…

    Python 2023年8月1日
    0104
  • Pandas写入Excel函数——to_excel 技术总结

    Pandas作为Python数据分析的一个常用包,经常会与Excel交互。最近经常使用pandas的 to_excel函数,发现坑还不少。经常报错,覆盖写入,让人烦躁。甚至Run一…

    Python 2023年8月7日
    094
  • python | 连连看游戏辅助脚本

    python;gutter:true; 1# -<em>- coding:utf-8 -</em>- 2 3 import win32gui 4 impor…

    Python 2023年6月12日
    0282
  • 网络爬虫是什么?怎么学python爬虫

    网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取…

    Python 2023年8月1日
    091
  • 使用Pytorch进行多卡训练

    深度学习中,当一块GPU不够用时,我们就需要使用多卡进行并行训练。其中多卡并行可分为数据并行和模型并行。具体区别如下图所示: 由于模型并行比较少用,这里只对数据并行进行记录。对于p…

    Python 2023年10月31日
    087
  • 【Java】反射, 枚举,Lambda表达式

    ✨系列专栏: 【Java SE】✨一句短话:难在坚持,贵在坚持,成在坚持! 文章目录 一. 反射 * 1. 反射的概述 2. 反射的使用 – 2.1 反射常用的类 2….

    Python 2023年9月27日
    090
  • Django最简单部署上线教程!!!

    Django 部署上线从0到1 本文基于你有一台服务器,这里采用的是阿里的云服务器 CentOS 7。 步骤: 1、 安装宝塔 2、 上传Django文件夹 3、 安装Python…

    Python 2023年8月5日
    0138
  • pytest中的fixture使用语法说明

    ​ 在unittest中我们可以使用setup和teardown进行初始化操作,但是在pytest中我们一般不会去使用setup和teardown进行初始化操作,而是使用fixtu…

    Python 2023年9月10日
    086
  • ubuntu下使用pygame进行摄像头调用 –python

    ubuntu下使用pygame进行摄像头调用 –python 1、安装pygame模块,进入终端,输入:pip install pygame,或者:pip3 insta…

    Python 2023年9月22日
    075
  • python绘制条形图 中文横坐标_python3使用matplotlib绘制条形图

    python3使用matplotlib绘制条形图 来源:中文源码网 浏览: 次 日期:2019年11月5日 【下载文档: python3使用matplotlib绘制条形图.txt …

    Python 2023年9月5日
    0102
  • Pytest框架 — 13、Pytest的标记(四)(分组执行)

    1、前言 在自动化测试工作中我们有时候并不需要测试所有的测试用例,比如在冒烟测试阶段,我们只需要测试基本功能是否正常就可以了。在 pytest中提供了 mark标记功能来实现分组执…

    Python 2023年11月1日
    099
  • EasyPoi大数据导入导出百万级实例

    EasyPoi介绍: 利用注解的方式简化了Excel、Word、PDF等格式的导入导出,而且是百万级数据的导入导出。EasyPoi官方网址:EasyPoi教程_V1.0 (mydo…

    Python 2023年10月16日
    0189
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球