python入门合集:

python快速入门【一】-----基础语法

python快速入门【二】----常见的数据结构

python快速入门【三】-----For 循环、While 循环

python快速入门【四】-----各类函数创建

python快速入门【五】---- 面向对象编程

python快速入门【六】----真题测试


Python中的函数是什么?

在Python中,function是一组执行特定任务的相关语句。

函数有助于将我们的程序分解为更小的模块化块。随着我们的计划越来越大,功能使其更加有条理和易于管理。

此外,它避免重复并使代码可重用

创建函数的语法

def function_name(parameters):"""docstring"""statement(s)

上面显示的是一个函数定义,它由以下组件组成。

  1. 关键字def标记函数头的开始。
  2. 用于唯一标识它的函数名称。函数命名遵循在Python中编写标识符的相同规则。
  3. 参数(参数),我们通过它将值传递给函数。它们是可选的。
  4. 冒号(:)标记函数头的结尾。
  5. 用于描述函数功能的可选文档字符串(docstring)。
  6. 构成函数体的一个或多个有效的python语句。语句必须具有相同的缩进级别(通常为4个空格)。
  7. 用于从函数返回值的可选return语句。

如何在python中调用函数?

一旦我们定义了一个函数,我们就可以从另一个函数,程序甚至Python提示符中调用它。要调用函数,我们只需使用适当的参数键入函数名称

In [2]

name = "Emma"def greet(name):"""This function greets tothe person passed in asparameter"""print("Hello, " + name + ". Good morning!")greet(name)
Hello, Emma. Good morning!

文档字符串

函数头之后的第一个字符串称为docstring,是文档字符串的缩写。它用于简要解释函数的作用。

虽然可选,但文档是一种很好的编程习惯。除非你能记住你上周吃的晚餐,否则请记录你的代码。

在上面的示例中,我们在函数头的正下方有一个docstring。我们通常使用三引号,以便docstring可以扩展到多行。我们可以将此字符串作为函数的__doc__属性使用。

例如:

In [3]

 print(greet.__doc__)
This function greets tothe person passed in asparameter

返回语句

return语句用于退出函数并返回到调用函数的位置。如下:

return [expression_list]

此语句可以包含要求求值的表达式,并返回值。如果语句中没有表达式,或者函数内部不存在return语句本身,则该函数将返回None对象。

例如:

In [5]

print(greet("May"))
Hello, May. Good morning!
None

这里,None是返回值

再举个例子

In [6]

def absolute_value(num):"""This function returns the absolutevalue of the entered number"""if num >= 0:return numelse:return -num# Output: 2
print(absolute_value(2))# Output: 4
print(absolute_value(-4))
2
4

变量的范围和寿命

变量的范围是程序中识别变量的部分。函数内定义的参数和变量在外部不可见。因此,它们具有局部范围。

变量的生命周期是变量在存储器中退出的时间段。函数内部变量的生命周期与函数执行的时间一样长。

一旦我们从函数返回它们就会被销毁。因此,函数不记得先前调用的变量值。

下面是一个示例,用于说明函数内部变量的范围。

In [7]

def my_func():x = 10print("Value inside function:",x)x = 20
my_func()
print("Value outside function:",x)
('Value inside function:', 10)
('Value outside function:', 20)

在这里,我们可以看到x的值最初为20。即使函数my_func()将x的值更改为10,它也不会影响函数外部的值。

这是因为函数内部的变量x与外部的变量x不同(函数的本地)。尽管它们具有相同的名称,但它们是两个具有不同范围的不同变量。

另一方面,函数外部的变量从内部可见。它们具有全局范围。

我们可以从函数内部读取这些值,但不能更改(写入)它们。为了修改函数外部变量的值,必须使用关键字global将它们声明为全局变量。

参数

在上面的案例中,我们学习了定义函数并调用它。否则,函数调用将导致错误。这是一个例子。

In [8]

def greet(name,msg):"""This function greets tothe person with the provided message"""print("Hello",name + ', ' + msg)greet("Monica","Good morning!")
('Hello', 'Monica, Good morning!')

这里,函数greet()有两个参数。

因为,我们用两个参数调用了这个函数,它运行顺畅,我们不会收到任何错误。

如果我们用不同数量的参数调用它,解释器会报错。下面是对此函数的调用,其中包含一个参数,没有参数及其各自的错误消息。

In [9]

 greet("Monica")greet() 

TypeErrorTraceback (most recent call last)<ipython-input-9-7765bb020128> in <module>() ----> 1 greet("Monica") 2 3 greet() TypeError: greet() takes exactly 2 arguments (1 given)

变量函数参数

到目前为止,函数具有固定数量的参数。在Python中,还有其他方法可以定义一个可以接受可变数量参数的函数。

下面描述这种类型的三种不同形式。

Python默认参数

函数参数可以在Python中具有默认值。

我们可以使用赋值运算符(=)为参数提供默认值。这是一个例子。

In [10]

def greet(name, msg = "Good morning!"):"""This function greets tothe person with theprovided message.If message is not provided,it defaults to "Goodmorning!""""print("Hello",name + ', ' + msg)greet("Kate")
greet("Bruce","How do you do?")
('Hello', 'Kate, Good morning!')
('Hello', 'Bruce, How do you do?')

在此函数中,参数名称没有默认值,在调用期间是必需的(必需)。

另一方面,参数msg的默认值为“早上好!”。因此,在通话期间它是可选的。如果提供了值,它将覆盖默认值。

函数中的任意数量的参数都可以具有默认值。但是一旦我们有一个默认参数,它右边的所有参数也必须有默认值

这意味着,非默认参数不能遵循默认参数。例如,如果我们将上面的函数头定义为:

def greet(msg = "Good morning!", name):

我们会收到一个错误:

SyntaxError: non-default argument follows default argument

Python关键字参数

当我们调用具有某些值的函数时,这些值将根据其位置分配给参数。

例如,在上面的函数greet()中,当我们将其称为greet(“Bruce”,“how do you do?”)时,值“Bruce”被赋值给参数名称,类似地how do you do消息

Python允许使用关键字参数调用函数。当我们以这种方式调用函数时,可以更改参数的顺序(位置)。以下对上述函数的调用都是有效的,并产生相同的结果。

>>> # 2 keyword arguments
>>> greet(name = "Bruce",msg = "How do you do?")>>> # 2 keyword arguments (out of order)
>>> greet(msg = "How do you do?",name = "Bruce") >>> # 1 positional, 1 keyword argument
>>> greet("Bruce",msg = "How do you do?")

我们可以看到,我们可以在函数调用期间将位置参数与关键字参数混合使用。但我们必须记住,关键字参数必须遵循位置参数。

在关键字参数之后使用位置参数将导致错误。

*Python任意参数

有时,我们事先并不知道将传递给函数的参数数量.Python允许我们通过具有任意数量参数的函数调用来处理这种情况。

在函数定义中,我们在参数名称前使用星号(*)来表示这种参数。这是一个例子。

In [11]

def greet(*names):"""This function greets allthe person in the names tuple."""# names is a tuple with argumentsfor name in names:print("Hello",name)greet("Monica","Luke","Steve","John")
('Hello', 'Monica')
('Hello', 'Luke')
('Hello', 'Steve')
('Hello', 'John')

在这里,我们使用多个参数调用该函数。这些参数在传递给函数之前被包装到元组中。在函数内部,我们使用for循环来检索所有参数。

Python函数: 在列表中移除重复对象

In [4]

# Python code to remove duplicate elements from listdef remove_duplicates(duplicate): uniques = [] for num in duplicate: if num not in uniques: uniques.append(num) return(uniques)duplicate = [2, 4, 10, 20, 5, 2, 20, 4]
print(remove_duplicates(duplicate)) 
[2, 4, 10, 20, 5]

当你使用return语句时,另一件值得一提的事是你可以用它来返回多个值。因此,您可以使用元组。

python快速入门【四】-----各类函数创建相关推荐

  1. python快速入门【三】-----For 循环、While 循环

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  2. python快速入门【五】---- 面向对象编程、python类

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  3. python快速入门【六】----真题测试

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  4. python快速入门【二】----常见的数据结构

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  5. python快速入门【一】-----基础语法

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  6. python快速入门 pdf-Python快速入门 (第3版) PDF 下载

    相关截图: 资料简介: 这是一本Python快速入门书,基于Python 3.6编写.本书分为4部分,*部分讲解Python的基础知识,对Python进行概要的介绍:第二部分介绍Python编程的重点 ...

  7. 【机器学习】Python 快速入门笔记

    Python 快速入门笔记 Xu An   2018-3-7  1.Python print #在Python3.X中使用print()进行输出,而2.x中使用()会报错 print("he ...

  8. python快速入门教程-终于理解python快速入门教程

    跟Java语言一样,python语言也有类的概念,直接使用class关键字定义python类.在python类,定义类的方法.然后直接使用类的初始化调用自身,获取相应的属性.以下是小编为你整理的pyt ...

  9. python快速编程入门教程-半小时带你快速入门Python编程,Python快速入门教程

    1,Introduction to Python (Python入门) 2,Python是什么? Python 官方网站的描述 Python is a programming language tha ...

最新文章

  1. 无锁HashMap的原理与实现
  2. xctf secret galaxy_三星SMARTTHINGS FIND正式发布 可帮助轻松查找GALAXY设备
  3. 简单的hibernate环境搭建、自动生成model/配置/hibernate.xml配置文件
  4. Java web后端7JSTL
  5. 95后热搜哪些事,夸克用AI引擎发布2021年度关键词
  6. ds1302模块 树莓派_ds1302模块的一个arduino程序
  7. 愁绪千万端,扰乱不成眠——如何修复Noise?
  8. window下连接ubuntu mysql的问题
  9. 素数平方根之和c语言注释,C语言 素数平方之和
  10. 暗黑破坏神(DIABLOII 1.11B)BOT 及源代码公开下载
  11. html右下角的广告特效,用jQuery实现网页右下角弹出广告效果
  12. 多彩三角活动策划方案PPT模板
  13. sdn交换机与普通交换机区别—Vecloud
  14. 1200PLC学习资料整理
  15. 首都师范 博弈论 2 1 1占优策略与占优策略均衡
  16. WIFI能杀死植物吗?
  17. WebWall-02.Burt Force(暴力破解漏洞)
  18. openssl 加密解密 指令_openssl命令aes加密和解密
  19. 小米Pro 安装Ubuntu,以及安装成功之后,各种关机重启的卡死问题
  20. PHP图片验证码无法显示的解决方案

热门文章

  1. SSH综合项目实战(快递) -- day07 定区关联快递员、搭建前台、客户注册
  2. 直观打印二叉树的图形
  3. easycode配置问题
  4. Django个人博客搭建4-配置使用 Bootstrap 4 改写模板文件
  5. 删除电脑被占用的串口
  6. 天涯论坛为什么不能删除或修改自己发表的贴子
  7. Logging 之root 打印器来捣乱
  8. 浮沙筑塔——protues仿真C51程序之LED灯闪烁
  9. 10.STC15W408AS单片机A/D转换器
  10. word怎么将文档分成三节_分节排版,就是将Word 2010的文档分节,使文档在不同的节中具有不同的______。(2.0分)_学小易找答案...