目录

  • 目录
  • 前言
  • (一)函数的基本知识
  • (二)函数的基本使用
    • ==1.函数的简单定义==
    • ==2.传值函数==
    • (3)输出效果
    • ==3.不定长函数==
    • ==4.缺省函数==
    • ==5.函数的传值过程==
    • ==6.具有返回值函数==
    • ==7.函数的使用说明==

目录

前言

分模块思想,分任务编程,是编程的一大重要思维,其中的实现,函数就担当了一个重要角色,今天我们就来学习Python的初级函数。

(一)函数的基本知识

(1)函数的优点

  1. 体积小,减少内存大小,冗余度小。
  2. 重用性强,可重复利用。
  3. 维护方便。
  4. 分解任务,简化逻辑,使代码更加模块化。

(2)函数的分类

  1. 内建函数
  2. 三方函数
  3. 自定义函数

(二)函数的基本使用

==1.函数的简单定义==

(1)语法说明

def 函数名():

​ 函数体

(2)源代码

# 定义一个简单函数
def test():print(2**2)print(2**3)print(2**4)# 调用函数
test()

(3)输出效果

==2.传值函数==

(1)语法说明

定义语法:

def 函数名(var1,var2,……)

​ 函数体

调用的时候,有两种方式:

  1. 顺序调用,要求实参与形参一一对应。
  2. 关键字调用,可以不按照顺序调用。

(2)源代码

# 定义一个带参数的函数
def test(var1, var2):print(var1+var2)print(var1**2+var2**2)print(var1**3+var2**3)# 顺序调用带参数的函数
print("顺序调用")
test(1, 2)# 关键字调用带参数函数
print("关键调用")
test(var2=2, var1=1)

(3)输出效果

==3.不定长函数==

(1)语法说明

当形参为下面两种形式的时,为不定长参数

  1. *args --- 接收为元组类型, 只要使用星号就可以,名字没关系,习惯用args而已。
  2. **kwargs ---接收为字典类型。其传值时,必须是关键字传值。

注意:装包与拆包

  1. 装包:args与kwargs 就是表示整个元组与字典的整体,叫装包
  2. 拆包:*args 与 **kwargs 表示元组和字典的每个元素,叫拆包

(2)源代码

# 定义不定长的参数- *args 接收的是元组类型
def test1(*args):print(args, type(args))print(*args)# 定义不定长的参数- *args 接收的是字典类型
def test2(**kwargs):print(kwargs, type(kwargs))# 输出keywordprint(*kwargs)# 使用value,不能打印出来,不过可以使用# 而且形参与实参的keyword一样,其实就是关键字调用test3(**kwargs)def test3(a, b, c):print(a)print(b)print(c)# 调用参数,并接收的是 元组
test1(1, 2, 3)# 调用参数,并接收的是 字典
test2(a="zsj", b=18, c="m")

(3)输出效果

==4.缺省函数==

(1)语法说明

在定义函数的时候,给形参赋值,就是缺省函数,所赋的值便是默认值,

def test(name="me")

而在调用的时候,可以传入参数,也可以不传入参数。

传入参数时,以所传的参数优先。

不传入参数时,为默认值。

(2)源代码

# 定义缺省参数
def test(name="zyg"):print(name)# 不传入参数, 默认值
test()
# 传入参数,优先值是传入的值
test("me")

(3)输出效果

==5.函数的传值过程==

(1)语法说明

在python里函数的传值:都是==引用传递==

  1. 值传递(从实参复制一个副本)传递给形参
  2. 引用传递(直接把实参的id)传给形参

Python的可变数据类型与不可变数据类型

  1. 可变数据类型:value值改变,id值不改变。(列表,字典)
  2. 不可变类型:value值改变,id值随之改变。(数值类型,字符串类型,布尔类型,元组类型)

Python里函数是否可以改变实参内容问题

  1. 若实参是可变数据类型,则可以实参内容
  2. 若实参是不可变数据类型,则不可以实参内容

(2)可变类型的实例

# 定义一个函数,用id()来判断其是值传递,还是地址传递?def test(num):print(id(num))num[1] = 5print(num)print(id(num))list1 = [1, 2, 3]
print(id(list1))
test(list1)
print("最后的id", id(list1))
print("最后的值", list1)

(3)不可变类型的实例

# 定义一个函数,用id()来判断其是值传递,还是地址传递?def test(num):print(id(num))num = 5print(num)print(id(num))number = 1
print(id(number))
test(number)
print("最后的id", id(number))
print("最后的值", number)

==6.具有返回值函数==

(1)语法说明

当我们需要函数处理过后,返回一个结果值。可以使用

return 结果值

结果值:可以是元组类型,列表类型,拆包后的数据

(2)源代码

# 定义一个具有返回值的函数def test(a, b):mysum = a + bmysub = a - breturn (a, b)n1 = 4
n2 = 2
sum_1, sub_1 = test(n1, n2)
print(sum_1)
print(sub_1)

(3)输出效果

==7.函数的使用说明==

(1)说明:

函数的说明都有一个标准的写法,才能调用help查看

def 函数名():

​ """

​ 功能:xxxxx

​ var1:

​ var2:

​ ....

​ return xxxx

​ """

查看帮助可以用:help(函数名) ,注意是函数名,不是函数调用。

(2)源代码

# 定义一个具有返回值的函数
def test(a, b=1):"""功能:该函数实现两个值的加减,并返回结果。:param a: 参与运算的一个值,数字类型,不可选,无默认值:param b: 参与运算的另一个值,数字类型,可选,默认值为1:return: 和与差的结果,元组类型。例如 (1, 2)"""mysum = a + bmysub = a - breturn (a, b)# 查看帮助
help(test)

(3)输出效果

作者:Mark

日期:2019/02/02 周六

转载于:https://www.cnblogs.com/zyg123/p/10348218.html

5.1Python函数(一)相关推荐

  1. Python语法之函数

    函数 函数,就是一系列指令语句所组成,它的目的有两个. 当我们在设计一个大型程序时, 若是能将这个程序依功能, 将其分割成较小的功能, 然后依这些较小功能要求撰写函数程序, 如此, 不仅使程序简单化, ...

  2. python精彩编程200例百度_Python趣味编程与精彩实例

    前言 序 1Python基础 1.1简介 1.2诞生 1.3应用 1.4优点 2开发环境配置 2.1Python下载与安装 2.2VSCode安装 2.3VSCode辅助插件 3VSCode使用 3. ...

  3. python seek tell_Python指针seektell详解

    课程多面升级为Python3.7版本 本课程持续更新中习惯的同学们可以关注一下. 课程提供详细的课堂笔记,让你体验保姆式学习体验,并安排讲师做24小时内答疑,如果遇到问题请第一时间留言,我们会及时安排 ...

  4. 趣味python3编程_Python趣味编程与精彩实例

    前言 序 1Python基础 1.1简介 1.2诞生 1.3应用 1.4优点 2开发环境配置 2.1Python下载与安装 2.2VSCode安装 2.3VSCode辅助插件 3VSCode使用 3. ...

  5. python控制台中怎么控制开始和结束_Python-基础篇之控制台编程 - 随笔分类 - 梦并不遥远 - 博客园...

    本章节主要包括Python的基础编程,面向过程和面向对象两种方法. 摘要:目录 [TOC] 前言 在此之前,我们以前写的编程,都是面向过程的编程,今儿起,我们开始学习一类编程的思想,也是相对面向过程更 ...

  6. Python学习笔记(十一)——第三十讲

    0. file_name = input('请输入文件名') f = open(file_name,'w') print('''请输入内容[单独输入':w'保存退出]''') str1 = input ...

  7. python从入门到实战django_Python Web开发从入门到实战(Django+Bootstrap微课视频版)

    部分基础知识篇 章Python Web环境搭建 1.1Python Web概述 1.1.1Python语言简介 1.1.2Python Web的优势 1.2安装Python 1.3安装开发工具VS C ...

  8. 机器人Python编程与开发

    图书简介 伴随着机器人技术的发展,现如今,Python已成为机器人编程语言中非常重要的组成部分.本书为Python语言基础和AUBO Python SDK编程的入门教材.全书分为10章,包括Pytho ...

  9. python进行金融分析_基于Python的金融分析

    目录 1Python基础知识 11Python环境搭建 111Python官网及下载 112Python安装 113Python环境配置 114Python运行 12Python基 ...

最新文章

  1. 一个故事讲清楚BIO NIO 异步
  2. android开机启动service
  3. 2021年中国云原生用户调查问卷
  4. 数据结构题:由逆置数组方法——逆置线性表L的所有元素
  5. 数字图像的大小、所需比特数(二维)
  6. 详细讲解Quartz.NET
  7. java线程6种状态转换,Java线程的生命周期和各种状态转换详解
  8. 主要的css hack
  9. 牛客网Java刷题知识点之表达式类型的自动提升
  10. 扩充你的工具箱 - 大行文件的处理
  11. Security+ 学习笔记25 硬件与数据安全
  12. 笔记 3 文件的特殊属性,权限
  13. socket状态不对是什么意思_无极状态,“太极状态”“无极生太极”都是什么意思?...
  14. C++解析char *p与char p[]
  15. 高斯赛德尔潮流计算c语言编程,高斯赛德尔法潮流计算
  16. 工具-虚拟机的桥接模式和NAT模式的区别
  17. 南卡和Snowkids电容笔哪款更值得入手?口碑最佳的国产电容笔
  18. rem与px之间的转换
  19. App前端及后端接口,模拟数据及返回值
  20. js判断true和false

热门文章

  1. JsBridge Uncaught TypeError: Cannot call method 'callHandler' of undefined, source
  2. 【javaweb】Session原理以及浏览器禁止Cookie之后服务器如何获取Session
  3. 已知3个坐标点xy画圆弧_这25张图片,让你彻底看懂25个复杂的数学公式!
  4. Java学习笔记26
  5. uniapp 安卓和IOS退出App的方法
  6. codeforces37C
  7. word打开时报Cannot find the Word document template:WordToRqm.dot
  8. 基于Delphi的Socket I/O模型全接触
  9. USACO_2_1_The Castle
  10. MOSS字段编辑权限控制方案--发布源码